in Shims/Shimulator/TestReporterShim/XCTestReporterShim.m [302:338]
static void XCToolLog_testCaseDidStop(XCTestCase *testCase, NSNumber *unexpectedExceptionCount, NSNumber *failureCount, NSNumber *totalDuration)
{
dispatch_sync(EventQueue(), ^{
NSString *className = nil;
NSString *methodName = nil;
NSString *testKey = nil;
parseXCTestCase(testCase, &className, &methodName, &testKey);
BOOL errored = [unexpectedExceptionCount integerValue] > 0;
BOOL failed = [failureCount integerValue] > 0;
BOOL succeeded = NO;
NSString *result;
if (errored) {
result = kReporter_EndTest_ResultValueError;
} else if (failed) {
result = kReporter_EndTest_ResultValueFailure;
} else {
result = kReporter_EndTest_ResultValueSuccess;
succeeded = YES;
}
// report test results
NSArray<NSDictionary<NSString *, id> *> *retExceptions = [__testExceptions copy];
NSDictionary<NSString *, id> *json = EventDictionaryWithNameAndContent(
kReporter_Events_EndTest, @{
kReporter_EndTest_TestKey : testKey,
kReporter_EndTest_ClassNameKey : className,
kReporter_EndTest_MethodNameKey : methodName,
kReporter_EndTest_SucceededKey: @(succeeded),
kReporter_EndTest_ResultKey : result,
kReporter_EndTest_TotalDurationKey : totalDuration,
kReporter_EndTest_ExceptionsKey : retExceptions,
});
PrintJSON(json);
});
}