Java 根据参数跳过一些测试

Java 根据参数跳过一些测试,java,groovy,junit4,skip,Java,Groovy,Junit4,Skip,目前,我正在与Gradlegroovy、Gebish和jUnit4一起进行硒测试 在gradle.build中,我有用于测试环境的变量,该测试环境是本地服务器还是活动服务器,以及哪个域 现在我希望不是所有的测试都在每种情况下运行。例如,我希望TestA和TestB与domain abc.com一起运行,而只有TestA和TestC与domain def.com一起运行 为此,我创建了一个全局配置类,从中获取允许运行哪个类的信息 我的想法是在每个方法之前运行@before并检查该类是否允许,但我不

目前,我正在与Gradlegroovy、Gebish和jUnit4一起进行硒测试

在gradle.build中,我有用于测试环境的变量,该测试环境是本地服务器还是活动服务器,以及哪个域

现在我希望不是所有的测试都在每种情况下运行。例如,我希望TestA和TestB与domain abc.com一起运行,而只有TestA和TestC与domain def.com一起运行

为此,我创建了一个全局配置类,从中获取允许运行哪个类的信息

我的想法是在每个方法之前运行@before并检查该类是否允许,但我不知道如何在@before之后跳过。
有没有简单的方法?是否可以使用类似System.exit0的东西来退出测试类而不是整个测试?

您可以使用org.junit.aspect的方法。它们类似于org.junit.Assert中的方法,但它们不会像这些方法那样使测试失败,而是在失败时跳过它们。如果希望将该控制代码放入测试类中,则可以使用此方法

除此之外,您还可以使用JUnit类别将测试或测试类标记为针对a运行和/或针对b运行,然后决定在Gradle文件中运行哪些类别


这两种方法之间的区别(除了决策代码所在的位置)是,第一种解决方案将跳过的测试作为忽略或跳过的测试报告,而第二种解决方案仅运行属于指定类别的测试,因此将显示在测试报告中。

谢谢,我现在使用@before和assumeTureFalse跳过测试,效果非常好: