我想通过在this paper中随机选择测试用例并使用pit运行突变测试,通过在主测试套件中创建一个小测试套件来检查覆盖率和测试套件有效性之间的关系。各种规模的测试套件。我正在使用的SUT是joda-time。我编写了以下程序来从master-suite
创建一个小型测试套件public class CustomTestAll extends TestCase {
public static Test suite() {
List<Test> inter_list;
List<Test> templist=new ArrayList<Test>();
TestSuite j=null;
Enumeration<Test> e;
TestSuite suite = new TestSuite();
//// TestHours
j= (TestSuite)TestHours.suite();
e=j.tests();
inter_list= Collections.list(e);
////TestDateTimeFieldType
j= (TestSuite)TestDateTimeFieldType.suite();
e=j.tests();
templist = Collections.list(e);
inter_list.addAll(templist);
////so on for all classes
///generating 10 unique random numbers between 0 and number of testcases
List<Integer> list = new ArrayList<Integer>();
for (int i=0; i<inter_list.size(); i++) {
list.add(new Integer(i));
}
Collections.shuffle(list);
for (int i = 0; i < 10;i++){
suite.addTest(inter_list.get(list.get(i)));
}
Enumeration<Test> k=suite.tests();
while(k.hasMoreElements()){System.out.println(k.nextElement());}
return suite;
}}
使用junit和emma代码覆盖率运行正常。但是当我使用这个测试套件进行突变测试(pitest)时,它会将所有测试用例放在一个类而不是一个选中的测试用例中。我无法弄清楚出了什么问题。我是java的初学者,我正在使用eclipse。