10

API を使用して JUnit テスト スイートを呼び出そうとしています。以下を使用してテストクラスを作成できることを知っています。

@RunWith(Suite.class)
@Suite.SuiteClasses({
  Test1.class,
  Test2.class, ...
})

しかし、たとえば JUnitCore を使用して、Java API を使用してスイート全体をトリガーする方法はありますか?

たとえば、次のコードを使用してテストをトリガーできます。

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));

しかし、これが推奨されるアプローチなのか、それとも上記のコードを書くことにマイナス面があるのか​​はわかりません。

4

2 に答える 2

14

スイート クラスの名前を JUnitCore に指定するだけです。

Computer computer = new Computer();

JUnitCore jUnitCore = new JUnitCore();
jUnitCore.run(computer, MySuite.class);
于 2012-04-12T18:41:26.233 に答える
4

コマンドプロンプトを次のように使用することもできます

java org.junit.runner.JUnitCore テスト クラス名

于 2012-04-13T09:01:12.420 に答える