我试图使用API调用一个JUnit测试套件.我知道您可以使用以下方法来安装测试类: @RunWith(Suite.class)@Suite.SuiteClasses({ Test1.class, Test2.class, ...}) 但是,有没有办法使用Java API来触发整个套件
@RunWith(Suite.class) @Suite.SuiteClasses({ Test1.class, Test2.class, ... })
但是,有没有办法使用Java API来触发整个套件,例如使用JUnitCore?
例如,您可以使用以下代码触发测试:
Runner r = try { r = new BlockJUnit4ClassRunner(Class.forName(testClass)); } catch (ClassNotFoundException | InitializationError e) { // handle } JUnitCore c = new JUnitCore(); c.run(Request.runner(r));
更新:
从API,似乎Suite类本身是一个运行器,因此以下代码似乎有效:
Suite suite = new Suite(klass, new RunnerBuilder() { ... // Implement methods }); JUnitCore c = new JUnitCore(); c.run(Request.runner(suite));
但我不知道这是否是推荐的方法,或者如果写上述代码有任何缺点.
只需将套件类的名称指定为JUnitCore:Computer computer = new Computer(); JUnitCore jUnitCore = new JUnitCore(); jUnitCore.run(computer, MySuite.class);