我在我的 java 项目中使用 sbt 进行开发例程,junit-interface用于运行测试。 但默认情况下它会忽略断言语句(断言用于检查底层代码中的某些不变量)。例如,此测试通过:
@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"
如何在测试中启用断言语句?
最佳答案
您可以将其设置为单独的任务,例如。 测试
:
javaOptions in test += "-ea"
或者简单地将其设置在任何地方:
javaOptions += "-ea"
无论如何,@MPirious 是正确的,因为您通常不希望通过单元测试导致断言失败。单元测试应该对代码的逻辑进行沙箱
关于java - 如何在使用 sbt 运行的 junit4 中打开断言语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24637692/