0

我知道通过创建测试套件,我可以运行我的所有类文件,使用类似的代码

suite.addTestSuite( TestCase3.class);  
suite.addTestSuite( TestCase2.class);
suite.addTestSuite( TestCase1.class); 

但是如果我不想运行类文件中的所有方法怎么办?我只想在测试类中运行特定的测试方法,该怎么做?

4

3 回答 3

0

以下链接可能对您有用

在不修改 Test 类的情况下排除单个 JUnit Test 方法?

http://junit.sourceforge.net/javadoc/org/junit/Ignore.html

于 2013-04-03T06:40:32.880 回答
0

如果你想修改跨类的执行,我强烈推荐TestNG

它有据可查,并为定制的测试执行提供了大量有用且易于使用的功能。

根据您的要求,TestNG Groups 将完成这项工作。

import org.testng.annotations.Test;

@Test(groups = {"groupA"})
public class ATest{

    @Test(groups = {"group1"})
    public void testA1() {

    }

    @Test(groups = {"group2"})
    public void testA2() {

    }

}

&

import org.testng.annotations.Test;

@Test(groups = {"groupB"})
public class BTest{

    @Test(groups = {"group1"})
    public void testB1() {

    }

    @Test(groups = {"group2"})
    public void testB2() {

    }

}

我想你已经知道如果你启动“group1”方法会运行哪些方法,对吧?

于 2013-04-03T07:40:17.237 回答
0

您将需要进一步构建您的套件。就像是 :

XmlSuite suite = new XmlSuite();

    XmlTest test = new XmlTest(suite);
    test.setName("TmpTest1");
    test.setVerbose(3);
    List<XmlClass> classes = new ArrayList<XmlClass>();
    XmlClass cl = new XmlClass();
    cl.setName("my.pkg.Tests");
    XmlInclude incMet = new XmlInclude("testSimpleTrue");
    List<XmlInclude> incMetList = new ArrayList<XmlInclude>();
    incMetList.add(incMet);
    cl.setIncludedMethods(incMetList);
    classes.add(cl);

    test.setXmlClasses(classes);

    List<XmlSuite> suites = new ArrayList<XmlSuite>();
    suites.add(suite);

    testng.setXmlSuites(suites);
于 2013-04-03T09:04:46.457 回答