下面列出了org.junit.internal.TextListener#org.junit.internal.RealSystem 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public static void run(final Class... suites) {
boolean underTC = System.getenv(TEAMCITY_DETECT_VAR_NAME) != null;
// prepare junit
JUnitSystem system = new RealSystem();
JUnitCore core = new JUnitCore();
RunListener listener = underTC ? new TeamCityListener() : new TextListener(system);
core.addListener(listener);
int success = 0,
failures = 0,
ignores = 0;
// run tests
for (Class suite : suites) {
sayNothing();
String suiteName = suite.getSimpleName();
if (suiteName.endsWith("Tests")) suiteName = suiteName.substring(0, suiteName.length()-"Tests".length());
if (suiteName.endsWith("Integration")) suiteName = suiteName.substring(0, suiteName.length()-"Integration".length());
if (suiteParameter != null) suiteName = suiteName + '[' + suiteParameter + ']';
if (underTC) say("##teamcity[testSuiteStarted name='%s']", suiteName);
Result result = core.run(suite);
success += result.getRunCount() - (result.getFailureCount() + result.getIgnoreCount());
failures += result.getFailureCount();
ignores += result.getIgnoreCount();
if (underTC) say("##teamcity[testSuiteFinished name='%s']", suiteName);
sayNothing();
}
}
/**
* Test runner entry point
* @param args list of test classes to run
* @throws ClassNotFoundException can't load the specified classes
*/
@SuppressWarnings("unchecked")
public static void main(final String[] args) throws ClassNotFoundException {
final JUnitCore jUnitCore = new JUnitCore();
if (CAPTURE_OUTPUT) {
jUnitCore.addListener(new OutputListener());
}
jUnitCore.addListener(new TextListener(new RealSystem()));
final TimingListener timing;
if (COLLECT_TIMINGS) {
timing = new TimingListener();
jUnitCore.addListener(timing);
} else {
timing = null;
}
if (PRINT_FAILURES) {
jUnitCore.addListener(new FailureListener());
}
if (PRINT_NAMES) {
jUnitCore.addListener(new NameListener());
}
jUnitCore.addListener(new NewLineListener());
final List<Result> results = new ArrayList<>();
if (args.length > 0) {
for (final String arg : args) {
final Class<?> klass = ClassLoader.getSystemClassLoader().loadClass(arg);
results.add(jUnitCore.run(klass));
}
} else {
final Class<?>[] classes = getClasses();
results.add(jUnitCore.run(classes));
}
if (timing != null) {
final Map<String, Long> timings = timing.getTimings(LONG_TEST_THRESHOLD);
if (timings.size() > 1) {
System.out.println();
System.out.println("Long tests");
for (Map.Entry<String, Long> entry : timings.entrySet()) {
System.out.println(formatTimeRow(entry.getKey(), entry.getValue(), TIMING_WIDTH));
}
}
}
for (Result result : results) {
if (!result.wasSuccessful()) {
System.exit(1);
}
}
}