簡體   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