Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.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 在Eclipse中,如何多次运行JUnit测试用例_Java_Eclipse_Junit - Fatal编程技术网

Java 在Eclipse中,如何多次运行JUnit测试用例

Java 在Eclipse中,如何多次运行JUnit测试用例,java,eclipse,junit,Java,Eclipse,Junit,我有一个单元测试有时会失败,调试它是一件痛苦的事情,因为我不知道为什么它有时会失败 在Eclipse中有没有一种方法可以让我运行JUnit测试5次或50次 谢谢。你试过这样的东西吗 @Test public void runMultipleTests() { for (int i = 0; i < 10; i++) { myTestMethod(); } } @测试 public void runMultipleTests(){ 对于(int i=0;i

我有一个单元测试有时会失败,调试它是一件痛苦的事情,因为我不知道为什么它有时会失败

在Eclipse中有没有一种方法可以让我运行JUnit测试5次或50次


谢谢。

你试过这样的东西吗

@Test
public void runMultipleTests() {
    for (int i = 0; i < 10; i++) {
        myTestMethod();
    }
}
@测试
public void runMultipleTests(){
对于(int i=0;i<10;i++){
myTestMethod();
}
}

这有一个测试装饰程序。请参阅

比如说

@Test  
@Repeat(10)  
public void FailRandomlyNeedToKnowWhy() {  
    ....
}

我刚刚找到了以下解决方案,它不需要任何额外的依赖性(您得到的答案之一需要Spring)

使用
参数化运行程序运行测试:

@RunWith(Parameterized.class)
然后添加以下方法,以提供与要运行测试的次数相等的空参数数:

@Parameterized.Parameters
public static List<Object[]> data() {
    return Arrays.asList(new Object[10][0]);
}
@Parameterized.Parameters
公共静态列表数据(){
返回Arrays.asList(新对象[10][0]);
}
这样,您甚至不必编写循环。IntelliJ和eclipse还将每次迭代的结果分组在一起。

灵感来自:

使用@Repeat注释如下:

公共类MyTestClass{
@统治
public RepeatRule RepeatRule=新RepeatRule();
@试验
@重复(10)
公共空testMyCode(){
//你的测试代码在这里
}
}
您只需要这两个类:

Repeat.java:

导入静态java.lang.annotation.ElementType.annotation\u类型;
导入静态java.lang.annotation.ElementType.METHOD;
导入java.lang.annotation.Retention;
导入java.lang.annotation.RetentionPolicy;
导入java.lang.annotation.Target;
@保留(RetentionPolicy.RUNTIME)
@目标({方法,注释类型})
公共@接口重复{
int value()默认值为1;
}
RepeatRule.java:

import org.junit.rules.TestRule;
导入org.junit.runner.Description;
导入org.junit.runners.model.Statement;
公共类RepeatRule实现TestRule{
私有静态类RepeatStatement扩展语句{
非公开最终声明;
私人最终整数重复;
公共重复语句(语句语句,int repeat){
这个。声明=声明;
这个。重复=重复;
}
@凌驾
public void evaluate()可丢弃{
for(int i=0;i
2016-10-25编辑:
为了在使用
@RunWith(PowerMockRunner.class)
时使用此解决方案,请更新到(其中包括)。

您试图测试的是什么?如果单元测试“有时”失败,则毫无用处。我的也是。这就是为什么我想修复它。我需要运行多次才能诊断问题。@Thom:抱歉,误解了您的问题。您也可以使用注释@Repeat(5)运行五次ahhh。有一个想法。如果我不顾一切的话,我可能会尝试这样做。
RepeatedTest
decorator来自JUnit,而您的代码示例包含一个Spring注释,不是吗?