Java 如何在使用sbt运行的junit4中打开assert语句?

Java 如何在使用sbt运行的junit4中打开assert语句?,java,junit,sbt,assert,Java,Junit,Sbt,Assert,我将sbt用于java项目中的开发例程和运行测试。 但默认情况下,它会忽略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 } 我的build.sb

我将sbt用于java项目中的开发例程和运行测试。 但默认情况下,它会忽略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
}
我的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"
如何在测试中启用assert语句?

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

我认为,您需要使用org.junit.Assert的静态方法

@Test
public void test() {
  org.junit.Assert.assertTrue(SOME CONDITION);
}
您对“assert”的使用是java中的一个关键字。它们需要通过提供JVM选项“-ea”来启用

我认为,您需要使用org.junit.Assert的静态方法

@Test
public void test() {
  org.junit.Assert.assertTrue(SOME CONDITION);
}
您对“assert”的使用是java中的一个关键字。它们需要通过提供JVM选项“-ea”来启用

我认为,您需要使用org.junit.Assert的静态方法

@Test
public void test() {
  org.junit.Assert.assertTrue(SOME CONDITION);
}
您对“assert”的使用是java中的一个关键字。它们需要通过提供JVM选项“-ea”来启用

我认为,您需要使用org.junit.Assert的静态方法

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

您可以为单独的任务设置它,例如
test
s:

javaOptions in test += "-ea"
或者干脆把它放在任何地方:

javaOptions += "-ea"

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

您可以为单独的任务设置它,例如
测试
s:

javaOptions in test += "-ea"
或者干脆把它放在任何地方:

javaOptions += "-ea"

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

您可以为单独的任务设置它,例如
测试
s:

javaOptions in test += "-ea"
或者干脆把它放在任何地方:

javaOptions += "-ea"

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

您可以为单独的任务设置它,例如
测试
s:

javaOptions in test += "-ea"
或者干脆把它放在任何地方:

javaOptions += "-ea"


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

我尝试添加这些选项,但什么都没有changed@kharandziuk您是否正在运行分叉测试?(
fork-in-test:=true
fork:=true
全部)我尝试设置
fork:=true
,现在一切正常。但是当我在test中更改
fork:=true
时,什么都不会发生。您可能还需要在这个build+=“-ea”中使用
javaOptions。我尝试添加这些选项,但什么都没有changed@kharandziuk您是否正在运行分叉测试?(
fork-in-test:=true
fork:=true
全部)我尝试设置
fork:=true
,现在一切正常。但是当我在test中更改
fork:=true
时,什么都不会发生。您可能还需要在这个build+=“-ea”
中使用
javaOptions。我尝试添加这些选项,但什么都没有changed@kharandziuk您是否正在运行分叉测试?(
fork-in-test:=true
fork:=true
全部)我尝试设置
fork:=true
,现在一切正常。但是当我在test中更改
fork:=true
时,什么都不会发生。您可能还需要在这个build+=“-ea”
中使用
javaOptions。我尝试添加这些选项,但什么都没有changed@kharandziuk您是否正在运行分叉测试?(
fork-in-test:=true
fork:=true
全部)我尝试设置
fork:=true
,现在一切正常。但是,当我更改
fork-in-test:=true
时,什么都不会发生。您可能还需要此构建中的
javaOptions+=“-ea”
。不,我只想在测试中的代码中启用不变检查。不,我只想在测试中的代码中启用不变检查。不,我只想在测试代码中启用不变检查。