目前我正在使用Gradle(groovy),Gebish和jUnit4进行Selenium测试。
在我的gradle.build中,我有测试环境的变量(服务器本地或实时和域名)。
现在我希望并非所有测试都在每种情况下运行。例如,我希望TestA和TestB与域abc.com一起运行,并且只有TestA和TestC与域def.com一起运行
为此我创建了一个全局配置类,在那里我获得了允许运行类的信息。
我的想法是在每个方法之前运行一个@before并检查是否允许该类,但我不知道如何在@before之后跳过。 有一个简单的方法吗?是否可以使用System.exit(0)之类的东西来退出测试类而不是整个测试?
答案 0 :(得分:2)
您可以使用org.junit.Assume
的方法。它们就像org.junit.Assert
中的方法一样,但它们不会像那些那样失败,但是在失败时跳过它们。如果要将控制代码放在测试类中,则可以使用此方法。
除此之外,您还可以使用JUnit类别将测试或测试类标记为"针对"和/或"针对b"然后决定在Gradle文件中运行哪些类别。
这两种方法之间的区别 - 除了托管决策代码的地方 - 是第一种解决方案,你得到跳过的测试"忽略"或"跳过"在测试报告中,使用第二个解决方案时,只运行属于指定类别的测试,因此会在测试报告中显示。