2016-09-06 86 views
-1

目前我正在使用Gradle(groovy),Gebish和jUnit4进行Selenium测试。根据参数跳过一些测试

在我的gradle.build中,我有变量的测试环境(至极服务器本地或生活和旺旺域)。

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

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

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

回答

2

您可以使用org.junit.Assume的方法。他们就像org.junit.Assert中的方法,但他们不会像那些测试一样失败,但在失败时跳过它们。如果您想将该控制代码放入测试类中,则此方法可用。

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

这两种方法之间的区别 - 除了托管决策代码的地方 - 是第一种解决方案在测试报告中将跳过的测试视为“忽略”或“跳过”,而第二种解决方案只有属于指定类别的测试运行,因此显示在测试报告中。

+0

谢谢,我使用@before并假设True(false)现在跳过测试,它的工作原理很棒:) –