Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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 使用多线程并行运行多个测试_Java_Multithreading_Junit4 - Fatal编程技术网

Java 使用多线程并行运行多个测试

Java 使用多线程并行运行多个测试,java,multithreading,junit4,Java,Multithreading,Junit4,任何人都可以说明,我应该如何与多线程并行实现多个测试,以便快速获得测试结果。目前,我的代码一个接一个地执行测试,这在测试过程中耗费了很多时间 public class Test{ @Test public void test1(){ } @Test public void test2(){} } 到目前为止,我一直遵循这个链接,在这里我的测试可以在线程中执行,但是一个接一个地执行,这不符合我的目的。有什么建议吗 只有JUnit没有标准的方法来实现这一点。 您需

任何人都可以说明,我应该如何与多线程并行实现多个测试,以便快速获得测试结果。目前,我的代码一个接一个地执行测试,这在测试过程中耗费了很多时间

  public class Test{

  @Test
  public void test1(){ }  

  @Test
  public void test2(){} 
  }

到目前为止,我一直遵循这个链接,在这里我的测试可以在线程中执行,但是一个接一个地执行,这不符合我的目的。有什么建议吗

只有JUnit没有标准的方法来实现这一点。 您需要将此多线程运行程序添加到项目中:

之后,您可以通过向类添加注释并行运行其所有测试:

@RunWith (MultiThreadedRunner.class)

如果使用maven,可以将maven构建配置为在单独的线程中运行每个方法。有关更多信息,请访问

像这样的方法应该会奏效:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
      <parallel>classesAndMethods</parallel>
      <threadCount>20</threadCount>
    </configuration>
</plugin>

org.apache.maven.plugins
maven surefire插件
类别和方法
20

如其他答案所示,JUnit可以满足您的需求。若您有选择另一个测试框架的灵活性,那个么您可以尝试使用TestNG,它的特性集比JUnit更大。从长远来看,这也可能有帮助,值得一试。对于您的特定需求,您可以尝试以下链接以与TestNG并行运行测试

您的测试是否直接或间接使用了线程安全的所有类?可能重复:或此: