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