相关疑难解决方法(0)

如何立即重新运行失败的JUnit测试?

有没有办法让JUnit规则或类似的东西给每个失败的测试提供第二次机会,只需尝试再次运行它.

背景:我有一大堆用JUnit编写的Selenium2-WebDriver测试.由于非常激进的时间(点击后只有很短的等待时间),一些测试(100个中的1个,总是不同的测试)可能会失败,因为服务器有时响应速度稍慢.但我不能让等待时间太久以至于它肯定足够长,因为那时测试将永远持续下去.) - 所以我认为这个用例即使需要一秒钟,测试也是绿色的是可以接受的尝试.

当然,最好有3个中的2个(重复3次失败的测试,如果其中两个测试是正确的,则将它们视为正确),但这将是未来的改进.

java testing junit

76
推荐指数
5
解决办法
3万
查看次数

黄瓜用标签自动重新运行失败的场景?

在我们的构建中,某些情况由于我们无法控制的原因而失败,或者需要很长时间才能正确调试.异步javascript等事情

无论如何,有时候他们有时候他们不工作,所以我认为将标签添加到诸如@rerun_on_failure或@retry之类的场景会很好,这会在构建失败之前重试场景X次.

我知道这不是一个理想的解决方案,但测试仍然很有价值,我们希望保持它没有误报

实际测试未通过链接点击并希望将跟踪事件发送到服务器进行分析(通过javascript).有时,selenium web-driver加载下一页太快,事件没有时间发送.

谢谢

ruby selenium webdriver cucumber

13
推荐指数
2
解决办法
6763
查看次数

使用cucumber-jvm重新尝试失败的黄瓜测试

我有一个Cucumber-JVM,JUnit,Selenium设置.我通过RunSmokeTests.java在Eclipse中使用JUnit来启动运行.我还设置了一个maven配置文件来从命令行运行测试,将来可能还有Jenkins.

当测试运行时,其中一些可能会失败,主要是由于应用程序花费的时间超过预期.然后我必须重新运行这些场景.目前我通过手动将@rerun标签附加到失败然后运行的标签来运行它们RunReruns.java,这类似于RunSmokeTest.java@rerun标签.

随着自动化测试数量的增加,标记测试并开始运行并清除标签非常耗时.有没有使用Cucumber-JVM重新运行失败测试的自动化方法?

RunSmokeTests.java

package testGlueClasses;
import cucumber.api.junit.Cucumber;
import org.junit.runner.RunWith;

@RunWith(Cucumber.class)
@Cucumber.Options(features = "src/test/java", strict = true, format = {
        "html:target/CucumberReport", "json:target/JSON/Cucumber.json",
        "FrameworkCore.CustomTestReporter" }, tags = { "@SmokeTest" }, glue = {
        "FrameworkCore", "MyApp.Utils", "MyApp.StepDefinitions" })
public class RunSmokeTests {

} 
Run Code Online (Sandbox Code Playgroud)

Maven片段:

    <profile>
        <id>smoke</id>
        <properties>
            <include.tests>
                **/RunSmokeTests.java
            </include.tests>
        </properties>
    </profile>
Run Code Online (Sandbox Code Playgroud)

java maven cucumber-jvm cucumber-junit

10
推荐指数
2
解决办法
9640
查看次数