如何从测试套件运行程序类访问测试用例类中的变量

时间:2014-11-14 14:01:42

标签: java testing junit testcase test-suite

我有一个抽象类,它使用相关数据扩展JUnit TestCase

public abstract class AbstractTestClass extends TestCase
{

    public ArrayList<TestDetails> testList;
}

然后我有一个扩展抽象类的测试类

public class TestClass extends AbstractTestClass

这包含在测试套件中

@RunWith(Suite.class)
@Suite.SuiteClasses({
   TestClass.class
})


public class TestSuite {


}

然后我从具有主要功能

的跑步者类中运行测试套件
public class TestRunner {

    public static void main(String[] args) {

        JUnitCore.runClasses(TestSuite.class);

    }
}

我的问题是如何从跑步者类中访问testList数据,即如果我想从主要打印列表中每个元素的详细信息。数据是动态创建的(在运行测试期间)

1 个答案:

答案 0 :(得分:0)

一种方法可能是将ArrayList Testlist声明为static并使TestRunner类扩展AbstractTestCase类:

现在您的AbstractTestCase类如下所示:

import java.util.ArrayList;

import junit.framework.TestCase;

public abstract class AbstractTestClass extends TestCase
{

    public static ArrayList<TestDetails> testList;
}

并且您的TestRunner类看起来像:

import org.junit.runner.JUnitCore;

public class TestRunner extends AbstractTestClass{

    public static void main(String[] args) {

        JUnitCore.runClasses(TestSuite.class);
        System.out.println(testList);
    }
}

现在您可以从TestRunner访问testList。它可能不是最优雅的解决方案,但它有效。