Javaの初心者です。
Junitの@SuiteClassesアノテーションの引数にテストスイートクラスを指定するとありますが、
ここを動的引き渡したいです。
できることなら、プロパティファイルにテストするクラスを記載し、それを渡したいと考えていますが、
こんなことが可能でしょうか。
賢者の皆様よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
ベストアンサー
Runnerを自作すれば実行可能かと思います。
java
1import java.util.ArrayList; 2import java.util.Arrays; 3import java.util.List; 4 5import org.junit.runner.Description; 6import org.junit.runner.Runner; 7import org.junit.runner.notification.RunNotifier; 8import org.junit.runners.BlockJUnit4ClassRunner; 9import org.junit.runners.ParentRunner; 10import org.junit.runners.model.InitializationError; 11 12public class ClassRunner extends ParentRunner<Runner> { 13 14 private final List<Runner> runners; 15 16 public ClassRunner(Class<?> testClass) throws InitializationError { 17 super(testClass); 18 19 List<Class<?>> classList = getClassList(); 20 runners = new ArrayList<>(); 21 for (Class<?> clazz : classList) { 22 runners.add(new BlockJUnit4ClassRunner(clazz)); 23 } 24 } 25 26 private List<Class<?>> getClassList() { 27 28 List<String> classNameList = getClassNameList(); 29 List<Class<?>> classList = new ArrayList<>(); 30 31 for (String className : classNameList) { 32 try { 33 classList.add(Class.forName(className)); 34 } catch (ClassNotFoundException e) { 35 // 例外処理 36 throw new RuntimeException("クラスが存在しない : " + className); 37 } 38 } 39 40 return classList; 41 } 42 43 private List<String> getClassNameList() { 44 45 // クラス名称(フルパス)のリストを作成する 46 // ここにプロパティファイルから取得する処理を記述 47 return Arrays.asList("hoge.fuga.HogeHoge"); 48 } 49 50 @Override 51 protected List<Runner> getChildren() { 52 return runners; 53 } 54 55 @Override 56 protected Description describeChild(Runner child) { 57 return child.getDescription(); 58 } 59 60 @Override 61 protected void runChild(Runner child, RunNotifier notifier) { 62 child.run(notifier); 63 } 64 65}
Suiteと同じように使います。
java
1@RunWith(ClassRunner.class) 2public class HogeTests { 3 4}
投稿2017/06/21 08:26
編集2017/06/21 08:30総合スコア310
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/22 00:34