[英]How to turn on assert statements in junit4 runned with sbt?
我将sbt用于我的Java项目中的开发例程,并将junit-interface用于运行测试。 但是默认情况下,它会忽略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"
如何在测试中启用断言语句?
您可以将其设置为单独的任务,例如。 test
s:
javaOptions in test += "-ea"
或只是将其设置在任何地方:
javaOptions += "-ea"
无论如何,@ MPirious是正确的,因为您通常不希望通过单元测试导致断言失败。 单元测试应该可以沙箱化代码的逻辑
您对“ assert”的使用是java中的关键字。 需要通过提供JVM选项“ -ea”来启用它们。
我认为,您想使用org.junit.Assert的静态方法。
@Test
public void test() {
org.junit.Assert.assertTrue(SOME CONDITION);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.