如何动态调用Junits

时间:2015-04-27 05:46:32

标签: java unit-testing dynamic junit testcase

我有多个包含各种测试用例的 junit.framework.TestCase 类的实例。我想编写一个从这些实例运行特定测试用例的程序。

有没有办法动态调用junit测试,类似于 java.lang.reflect API中的invoke()方法?

3 个答案:

答案 0 :(得分:0)

您可以使用JUnitCore调用Junit,如果您使用Maven运行整个测试套件会更好,因为@SubOptimal指出。

    JUnitCore junit = new JUnitCore();
    Result result = junit.run(CommonConstantsUnitTest.class);

答案 1 :(得分:0)

因为你想要实现的目标并不是很清楚。在下面找到一些更普遍的可能性。如果你使用的是Maven,你可以

  1. 运行特定测试
  2. (有关更多示例/可能性,请参阅maven-surefire-plugin: single-test

    mvn -Dtest=YourClass* test
    
    1. 为特定JUnit类别注释类
    2. (有关更多示例/可能性,请参阅maven-surefire-plugin: JUnit_Categories

      mvn test -Dgroups="your.test.group.Example"
      

      修改对于ivy,此SO帖子how-to-run-all-junit-tests-in-a-category-suite-with-ant可能有助于解决您的要求。

答案 2 :(得分:-2)

尝试使用@Category注释 您可以对测试进行分类,然后使用@Category@Category

的组合调用测试