如何在使用sbt运行的junit4中打开断言语句



我在java项目中使用sbt开发例程,使用junit接口运行测试。但默认情况下,它忽略assert语句(assert用于检查底层代码中的某些不变量)。例如,这个测试通过了:

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

我的构建。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年代:

javaOptions in test += "-ea"

或者直接在各处设置:

javaOptions += "-ea"

无论如何,@MPirious是正确的,因为您通常不希望通过单元测试导致断言失败。单元测试应该是沙箱你的代码的逻辑

您使用的"assert"是java中的关键字。它们需要通过提供JVM选项"-ea"来启用。

我认为,你应该使用org.junit.Assert的静态方法。

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

相关内容

  • 没有找到相关文章

最新更新