use of com.teamscale.report.testwise.model.TestExecution in project teamscale-jacoco-agent by cqse.
the class TestInfoFactory method createTestInfosWithoutCoverage.
/**
* Returns {@link TestInfo}s for all tests that have not been used yet in {@link #createFor(TestCoverageBuilder)}.
*/
public List<TestInfo> createTestInfosWithoutCoverage() {
ArrayList<TestInfo> results = new ArrayList<>();
for (TestDetails testDetails : testDetailsMap.values()) {
if (!processedTestUniformPaths.contains(testDetails.uniformPath)) {
TestInfoBuilder testInfo = new TestInfoBuilder(testDetails.uniformPath);
testInfo.setDetails(testDetails);
testInfo.setExecution(testExecutionsMap.get(testDetails.uniformPath));
results.add(testInfo.build());
processedTestUniformPaths.add(testDetails.uniformPath);
}
}
for (TestExecution testExecution : testExecutionsMap.values()) {
if (!processedTestUniformPaths.contains(testExecution.getUniformPath())) {
System.err.println("Test " + testExecution.getUniformPath() + " was executed but no coverage was found. " + "Please make sure that you did provide all relevant exec files and that the test IDs passed to " + "the agent match the ones from the provided test execution list.");
processedTestUniformPaths.add(testExecution.getUniformPath());
}
}
return results;
}
use of com.teamscale.report.testwise.model.TestExecution in project teamscale-jacoco-agent by cqse.
the class TestInfoFactory method createFor.
/**
* Converts the given {@link TestCoverageBuilder} to a {@link TestInfo} using the internally stored test details and
* test executions.
*/
public TestInfo createFor(TestCoverageBuilder testCoverageBuilder) {
String resolvedUniformPath = resolveUniformPath(testCoverageBuilder.getUniformPath());
processedTestUniformPaths.add(resolvedUniformPath);
TestInfoBuilder container = new TestInfoBuilder(resolvedUniformPath);
container.setCoverage(testCoverageBuilder);
TestDetails testDetails = testDetailsMap.get(resolvedUniformPath);
if (testDetails == null) {
System.err.println("No test details found for " + resolvedUniformPath);
}
container.setDetails(testDetails);
TestExecution execution = testExecutionsMap.get(resolvedUniformPath);
if (execution == null) {
System.err.println("No test execution found for " + resolvedUniformPath);
}
container.setExecution(execution);
return container.build();
}
use of com.teamscale.report.testwise.model.TestExecution in project teamscale-jacoco-agent by cqse.
the class TestwiseCoverageCollectingExecutionListener method executionSkipped.
@Override
public void executionSkipped(TestDescriptor testDescriptor, String reason) {
if (!TestDescriptorUtils.isTestRepresentative(testDescriptor)) {
delegateEngineExecutionListener.executionStarted(testDescriptor);
testDescriptor.getChildren().forEach(child -> this.executionSkipped(child, reason));
delegateEngineExecutionListener.executionFinished(testDescriptor, TestExecutionResult.successful());
return;
}
testDescriptorResolver.getUniformPath(testDescriptor).ifPresent(testUniformPath -> {
if (!AutoSkippingEngineExecutionListener.TEST_NOT_IMPACTED_REASON.equals(reason)) {
testExecutions.add(new TestExecution(testUniformPath, 0L, ETestExecutionResult.SKIPPED, reason));
}
delegateEngineExecutionListener.executionSkipped(testDescriptor, reason);
});
}
use of com.teamscale.report.testwise.model.TestExecution in project teamscale-jacoco-agent by cqse.
the class JaCoCoTestwiseReportGeneratorTest method generateDummyReportFrom.
/**
* Generates a dummy coverage report object that wraps the given {@link TestwiseCoverage}.
*/
public static TestwiseCoverageReport generateDummyReportFrom(TestwiseCoverage testwiseCoverage) {
ArrayList<TestDetails> testDetails = new ArrayList<>();
for (TestCoverageBuilder test : testwiseCoverage.getTests()) {
testDetails.add(new TestDetails(test.getUniformPath(), "/path/to/source", "content"));
}
ArrayList<TestExecution> testExecutions = new ArrayList<>();
for (TestCoverageBuilder test : testwiseCoverage.getTests()) {
testExecutions.add(new TestExecution(test.getUniformPath(), test.getUniformPath().length(), ETestExecutionResult.PASSED));
}
return TestwiseCoverageReportBuilder.createFrom(testDetails, testwiseCoverage.getTests(), testExecutions);
}
use of com.teamscale.report.testwise.model.TestExecution in project teamscale-jacoco-agent by cqse.
the class CoverageToTeamscaleStrategyTest method shouldRecordCoverageForTestsEvenIfNotProvidedAsAvailableTest.
@Test
public void shouldRecordCoverageForTestsEvenIfNotProvidedAsAvailableTest() throws Exception {
AgentOptions options = mockOptions();
CoverageToTeamscaleStrategy strategy = new CoverageToTeamscaleStrategy(controller, options, reportGenerator);
TestwiseCoverage testwiseCoverage = getDummyTestwiseCoverage("mytest");
when(reportGenerator.convert(any(File.class))).thenReturn(testwiseCoverage);
// we skip testRunStart and don't provide any available tests
strategy.testStart("mytest");
strategy.testEnd("mytest", new TestExecution("mytest", 0L, ETestExecutionResult.PASSED));
strategy.testRunEnd();
verify(client).uploadReport(eq(EReportFormat.TESTWISE_COVERAGE), matches("\\Q{\"tests\":[{\"duration\":\\E[^,]*\\Q,\"paths\":[{\"files\":[{\"coveredLines\":\"1-4\",\"fileName\":\"Main.java\"}],\"path\":\"src/main/java\"}],\"result\":\"PASSED\",\"sourcePath\":\"mytest\",\"uniformPath\":\"mytest\"}]}\\E"), any(), any(), any(), any());
}
Aggregations