JUnitCore
является основной точкой входа для Junit
испытаний. Как он работает, он находит List
классов, предоставляемых как аргументы команды java
, и использует их для создания Runner
, с помощью которого он запускает тестовые примеры.
Ни в одной точке во время обработки делает метод main
в JUnitCore
когда-либо передать ссылку в JUnitCore
случае он создает для любого другого объекта. Таким образом, не извлекается ни прямо, ни с отражением.
JUnitCore
выглядит следующим образом
public static void main(String... args) {
runMainAndExit(new RealSystem(), args);
}
public static void runMainAndExit(JUnitSystem system, String... args) {
Result result= new JUnitCore().runMain(system, args);
system.exit(result.wasSuccessful() ? 0 : 1);
}
public Result runMain(JUnitSystem system, String... args) {
system.out().println("JUnit version " + Version.id());
List<Class<?>> classes= new ArrayList<Class<?>>();
List<Failure> missingClasses= new ArrayList<Failure>();
for (String each : args)
try {
classes.add(Class.forName(each));
} catch (ClassNotFoundException e) {
system.out().println("Could not find class: " + each);
Description description= Description.createSuiteDescription(each);
Failure failure= new Failure(description, e);
missingClasses.add(failure);
}
RunListener listener= new TextListener(system);
addListener(listener);
Result result= run(classes.toArray(new Class[0]));
for (Failure each : missingClasses)
result.getFailures().add(each);
return result;
}
... // and more
Нет, где в этой реализации является ссылкой на this
передается в качестве аргумента. Таким образом, вы не можете получить ссылку на него.
Если JUnit не имеет способ впрыснуть или дать вам ссылку на 'JunitCore', вы не можете получить его, даже с отражение. –
Почему? Что вы пытаетесь достичь – Steinar
Что случилось с 'new JunitCore()'? –