我有Selenium测试,每隔一段时间就会失败,所以我想要一个retryAnalyzer强制测试重新运行。现在我在dependsOnGroups中添加一些测试依赖项。但是如果硒测试失败并且第二次通过,则将跳过依赖于它的测试。
我想要的是testRetryAndPass传递一次(无论是否重试),然后我想要testDependOnGroup运行。现在跳过testDependOnGroup。
测试代码:
@Test(dependsOnGroups = "test")
public void testDependOnGroup()
{
assertTrue( true );
}
@Test( groups = { "test" }, retryAnalyzer = RetryAnalyzer.class )
public void testRetryAndPass()
{
if ( RetryAnalyzer.retryCount == 0 )
{
assertTrue( false );
}
else
{
assertTrue( true );
}
}
RetryAnalyzer:
public class RetryAnalyzer extends TestListenerAdapter implements IRetryAnalyzer
{
private static Logger logger = Logger.getLogger( RetryAnalyzer.class );
public static int retryCount = 0;
public static final int MAX_RETRIES = 1;
@Override
public boolean retry( ITestResult result )
{
logger.info( "Running retry for " + result.getMethod() );
boolean retryFunction = false;
if ( retryCount < MAX_RETRIES )
{
retryCount++;
retryFunction = true;
}
return retryFunction;
}
}
我很乐意回答您的任何问题。