2014-07-08 1 views
0

내 Java 프로젝트의 개발 루틴에 sbt를 사용하고 테스트를 실행하는 데 junit-interface을 사용합니다. 하지만 기본적으로 assert 문은 무시됩니다 (내부 코드의 일부 불변성을 확인하기 위해 assert). 예를 들어이 테스트에 통과 :sbt로 실행 된 junit4에서 assert 문을 켜는 방법은 무엇입니까?

@Test 
public void test() { 
    // this is example; In reality assertion somewhere in code under test 
    assert false; // not assertTrue(or whatever) from junit 
} 

내 build.sbt 파일은 매우 간단하다 :

organization := "Kharandziuk" 

name := "Some alg project" 

version := "1.0-SNAPSHOT" 

libraryDependencies ++= Seq(
    "junit" % "junit" % "4.8.1" % "test", 
    "com.novocode" % "junit-interface" % "0.10" % "test" 
) 

autoScalaLibrary := false 

testOptions += Tests.Argument(TestFrameworks.JUnit, "-a", "-q", "-v") 

fork in run := true 

javaOptions in run += "-ea" 

나는 테스트에서 어설 션 문을 사용할 수 있습니까?

답변

2

별도의 작업을 설정할 수 있습니다. test의 :

javaOptions in test += "-ea" 

하거나 사방을 설정합니다

javaOptions += "-ea" 

에 관계없이, @MPirious 바로 점에서 당신은 일반적으로 단위 테스트를 통해 주장 오류가 발생할 싶지 않아요입니다. 단위 테스트는 샌드 박스 코드의 로직

+0

그 옵션을 추가하려고했지만 아무 것도 바뀌지 않았습니다 – kharandziuk

+1

@kharandziuk 테스트를 실행하고 있습니까? ('fork in test : = true' 또는'fork : = true') – blgt

+0

'fork : = true'를 설정하려고 시도했지만 이제 모든 것이 작동합니다. 하지만'fork in test : = true'를 변경하면 아무 일도 일어나지 않습니다. – kharandziuk

1

"assert"의 사용은 java의 키워드입니다. JVM 옵션 "-ea"를 제공하여 활성화해야합니다.

나는 org.junit.Assert의 정적 메소드를 사용하고자한다고 생각한다.

@Test 
public void test() { 
    org.junit.Assert.assertTrue(SOME CONDITION); 
} 
+0

아니요, 테스트중인 코드에서 불변 검사를 사용하고 싶습니다. – kharandziuk

관련 문제