繁体   English   中英

如何在以sbt运行的junit4中打开断言语句?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM