私はJavaクラスを持っています。クラスにJUnit4テストのメソッドが含まれているかどうかを確認するにはどうすればよいですか?リフレクションを使用してすべてのメソッドを反復処理する必要がありますか、またはJUnit4がそのようなチェックを提供していますか?JavaクラスにJUnit4テストが含まれているかどうかを確認する方法は?
編集:
コメントがコードを含めることはできませんから、私はここの回答に基づいて、私のコードを配置:
private static boolean containsUnitTests(Class<?> clazz)
{
List<FrameworkMethod> methods= new TestClass(clazz).getAnnotatedMethods(Test.class);
for (FrameworkMethod eachTestMethod : methods)
{
List<Throwable> errors = new ArrayList<Throwable>();
eachTestMethod.validatePublicVoidNoArg(false, errors);
if (errors.isEmpty())
{
return true;
}
else
{
throw ExceptionUtils.toUncheked(errors.get(0));
}
}
return false;
}
ありがとうございます!私が質問の本文でどのように使ったかを見てください。 – oshai
@ohadshai: 'if(errors.isEmpty()){return true;}'のロジック上の問題。メソッドに続くものは検証に失敗しますか?あなたは簡単にそれを修正することがあります:) –