@Override
public void executionStarted(final TestIdentifier testIdentifier) {
if (testIdentifier.istest()) {
final Optional<MethodSource> methodSource = testIdentifier.getSource()
.filter(MethodSource.class::isinstance)
.map(MethodSource.class::cast);
final String uuid = tests.get();
final TestResult result = new TestResult()
.withUuid(uuid)
.withName(testIdentifier.getdisplayName())
.withLabels(getTags(testIdentifier))
.withHistoryId(getHistoryId(testIdentifier))
.withStage(Stage.RUNNING);
methodSource.ifPresent(source -> {
result.setDescription(getDescription(source));
result.getLabels().add(new Label().withName("suite").withValue(getSuite(source)));
result.getLabels().add(new Label().withName("package").withValue(source.getClassName()));
});
getLifecycle().scheduleTestCase(result);
getLifecycle().startTestCase(uuid);
}
}
public final Builder addResult(TestIdentifier identifier,TestExecutionResult result) {
displayName displayName = getdisplayName(identifier);
if (identifier.istest()) {
testsBuilder().add(displayName);
}
switch (result.getStatus()) {
case SUCCESSFUL:
successfulBuilder().add(displayName);
return this;
case Failed:
failuresBuilder().put(displayName,result.getThrowable().orElse(null));
return this;
default:
throw new AssertionError("Unhandled case in enum: " + result.getStatus());
}
}
private displayName getdisplayName(TestIdentifier testIdentifier) {
LinkedList<String> names = new LinkedList<>();
Optional<TestIdentifier> id = Optional.of(testIdentifier);
do {
TestIdentifier identifier = id.get();
Optional<ClassSource> classSource = identifier.getSource()
.filter(source -> source instanceof ClassSource)
.map(source -> (ClassSource) source)
.filter(source -> !source.getPosition().isPresent())
.filter(source -> classesToSkip.contains(source.getJavaClass()));
if (classSource.isPresent()) {
break;
}
names.addFirst(identifier.getdisplayName());
id = id.flatMap(testPlan::getParent);
} while (id.isPresent());
return displayName.create(names);
}
@Override
public void executionFinished(final TestIdentifier testIdentifier,final TestExecutionResult testExecutionResult) {
if (testIdentifier.istest()) {
final String uuid = tests.get();
tests.remove();
getLifecycle().updateTestCase(uuid,result -> {
result.setStage(Stage.FINISHED);
switch (testExecutionResult.getStatus()) {
case Failed:
testExecutionResult.getThrowable().ifPresent(throwable -> {
result.setStatus(getStatus(throwable));
result.setStatusDetails(ResultsUtils.getStatusDetails(throwable).orElse(null));
});
break;
case SUCCESSFUL:
result.setStatus(PASSED);
break;
default:
result.setStatus(SKIPPED);
testExecutionResult.getThrowable().ifPresent(throwable ->
result.setStatusDetails(ResultsUtils.getStatusDetails(throwable).orElse(null))
);
break;
}
});
getLifecycle().stopTestCase(uuid);
getLifecycle().writeTestCase(uuid);
}
}
public static Description toDescription(TestIdentifier testIdentifier) {
String className = testIdentifier.getSource().map(source -> {
if (source instanceof ClassSource) {
return ((ClassSource) source).getClassName();
} else if (source instanceof MethodSource) {
return ((MethodSource) source).getClassName();
}
return null;
}).orElse(null);
return new Description(testIdentifier.getdisplayName(),className);
}
项目:verify-matching-service-adapter
文件:TestStatusPrintingListener.java
项目:verify-matching-service-adapter
文件:TestStatusPrintingListener.java
@Override
public void executionFinished(TestIdentifier testIdentifier,TestExecutionResult testExecutionResult) {
super.executionFinished(testIdentifier,testExecutionResult);
if (testIdentifier.istest()) {
Status status = testExecutionResult.getStatus();
Color color = Color.valueOf(status);
printMessage(color,STATUS + status);
printFailureMessage(testIdentifier,testExecutionResult,color);
System.out.println();
}
}
项目:jovial
文件:SerializingListener.java
@Override
public void executionSkipped(TestIdentifier testIdentifier,String reason) {
Map<String,Object> data = new HashMap<>();
data.put("type","executionSkipped");
data.put("reason",reason);
writeData(testIdentifier,data);
}
项目:jovial
文件:SerializingListener.java
@Override
public void executionFinished(TestIdentifier testIdentifier,TestExecutionResult testExecutionResult) {
Map<String,"executionFinished");
data.put("success",testExecutionResult.getStatus() == TestExecutionResult.Status.SUCCESSFUL);
data.put("throwable",testExecutionResult.getThrowable().orElse(null));
writeData(testIdentifier,data);
}
项目:jovial
文件:SerializingListener.java
private void writeData(TestIdentifier id,Map<String,Object> data) {
try {
data.put("uniqueId",id.getUniqueId());
data.put("parentId",id.getParentId().orElse(null));
data.put("displayName",id.getdisplayName());
data.put("container",id.isContainer());
stream.writeObject(data);
} catch (IOException e) {
System.err.println("Could not write event: " + data);
}
}
项目:allure-java
文件:CustomListener.java
@Override
protected String getHistoryId(final TestIdentifier testIdentifier) {
return null;
}
private List<Label> getTags(final TestIdentifier testIdentifier) {
return testIdentifier.getTags().stream()
.map(tag -> new Label().withName(TAG).withValue(tag.getName()))
.collect(Collectors.toList());
}
protected String getHistoryId(final TestIdentifier testIdentifier) {
return md5(testIdentifier.getUniqueId());
}
@Override
public void executionSkipped(TestIdentifier testIdentifier,String reason) {
executionReportBuilder.addSkipped(testIdentifier,reason);
}
@Override
public void executionFinished(TestIdentifier testIdentifier,TestExecutionResult testExecutionResult) {
executionReportBuilder.addResult(testIdentifier,testExecutionResult);
}
public junit5TestUnit(TestIdentifier testIdentifier) {
super(TestIdentifiers.toDescription(testIdentifier));
this.classLoaderDetection = IsolationUtils.loaderDetectionStrategy();
this.testIdentifier = testIdentifier;
}
项目:verify-matching-service-adapter
文件:TestStatusPrintingListener.java
@Override
public void testPlanExecutionFinished(TestPlan testPlan) {
super.testPlanExecutionFinished(testPlan);
long tests = testPlan.countTestIdentifiers(TestIdentifier::isTest);
System.out.println("Test execution finished. Number of all tests: " + tests);
}
项目:verify-matching-service-adapter
文件:TestStatusPrintingListener.java
private void printFailureMessage(TestIdentifier testIdentifier,TestExecutionResult testExecutionResult,Color color) {
if (testExecutionResult.getStatus().equals(Status.Failed)) {
testExecutionResult.getThrowable()
.ifPresent(throwable -> printMessage(color,throwable.toString()));
}
}
项目:jovial
文件:SerializingListener.java
@Override
public void dynamicTestRegistered(TestIdentifier testIdentifier) {
Map<String,"dynamicTestRegistered");
writeData(testIdentifier,data);
}
项目:jovial
文件:SerializingListener.java
@Override
public void executionStarted(TestIdentifier testIdentifier) {
Map<String,"executionStarted");
writeData(testIdentifier,data);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。