Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 7中向JUnit Test Watchman方法传递代理/委托/函数指针的任何方法_Java_Selenium_Junit_Java 7 - Fatal编程技术网

Java 7中向JUnit Test Watchman方法传递代理/委托/函数指针的任何方法

Java 7中向JUnit Test Watchman方法传递代理/委托/函数指针的任何方法,java,selenium,junit,java-7,Java,Selenium,Junit,Java 7,您好,关于上述问题,我们正在使用JUnit参数化测试运行程序进行Selenium自动化。我们有一些从中继承的基本测试类。我们有一个测试值班员。我想知道的是,是否有任何方法可以将代码传递给它。基本上,如果测试失败,我想实现一个全局重试机制。但是,可能需要一些设置代码。如果我使用参数化的runner,它将不会再次调用BeforeClass。我遇到了一些问题,其中过时的元素正在传播并导致其他测试失败 public class BaseTest{ @Rule public MethodR

您好,关于上述问题,我们正在使用JUnit参数化测试运行程序进行Selenium自动化。我们有一些从中继承的基本测试类。我们有一个测试值班员。我想知道的是,是否有任何方法可以将代码传递给它。基本上,如果测试失败,我想实现一个全局重试机制。但是,可能需要一些设置代码。如果我使用参数化的runner,它将不会再次调用BeforeClass。我遇到了一些问题,其中过时的元素正在传播并导致其他测试失败

 public class BaseTest{

   @Rule
   public MethodRule watchman= new TestWatchman() {

  @Override
  public void failed(Throwable e, FrameworkMethod method) {
      //call retry code here, need to be able to pass a chunk of code
     }

  @Override
  public void succeeded(FrameworkMethod method) {
      watchedLog+= method.getName() + " " + "success!\n";
     }
 };

}

@RunWith(Parameterized.class)
public class Test  extends BaseTest{

      @BeforeClass
      public static void beforeClass()
      {
           //set failure code 
      }
}

做这件事会不会再次在课前打电话?如果这是一个参数化测试,我不想再次运行所有的测试。只是失败

你能解释一下你想把什么样的代码注入TestWatchman.Log代码和其他设置代码吗。实际上,重试测试所需的任何内容。它可能是任何东西。强制WebDriver退出并重新打开(这在AfterClass中发生,但不会因参数化测试失败而调用)。