Search in sources :

Example 21 with Launch

use of com.epam.reportportal.service.Launch in project agent-java-junit5 by reportportal.

the class CodeReferenceTest method verify_static_test_code_reference_generation.

@Test
public void verify_static_test_code_reference_generation() {
    TestUtils.runClasses(SingleTest.class);
    Launch launch = CodeReferenceTestExtension.LAUNCH;
    ArgumentCaptor<StartTestItemRQ> suiteCaptor = ArgumentCaptor.forClass(StartTestItemRQ.class);
    // Start parent Suite
    verify(launch, times(1)).startTestItem(suiteCaptor.capture());
    ArgumentCaptor<StartTestItemRQ> testCaptor = ArgumentCaptor.forClass(StartTestItemRQ.class);
    // Start a test
    verify(launch, times(1)).startTestItem(notNull(), testCaptor.capture());
    String className = SingleTest.class.getCanonicalName();
    StartTestItemRQ suiteRq = suiteCaptor.getValue();
    assertThat(suiteRq.getCodeRef(), equalTo(className));
    StartTestItemRQ testRq = testCaptor.getValue();
    assertThat(testRq.getCodeRef(), equalTo(className + ".singleTest"));
}
Also used : Launch(com.epam.reportportal.service.Launch) StartTestItemRQ(com.epam.ta.reportportal.ws.model.StartTestItemRQ) Test(org.junit.jupiter.api.Test) SingleTest(com.epam.reportportal.junit5.features.coderef.SingleTest) SingleDynamicTest(com.epam.reportportal.junit5.features.coderef.SingleDynamicTest)

Example 22 with Launch

use of com.epam.reportportal.service.Launch in project agent-java-junit5 by reportportal.

the class JunitNestedTestTest method verify_static_nested_tests.

@Test
@SuppressWarnings("unchecked")
public void verify_static_nested_tests() {
    TestUtils.runClasses(JunitClassNestedTests.class);
    Launch launch = TestExtension.LAUNCH;
    ArgumentCaptor<StartTestItemRQ> suiteCaptor = ArgumentCaptor.forClass(StartTestItemRQ.class);
    // Start parent Suite
    verify(launch, times(1)).startTestItem(suiteCaptor.capture());
    ArgumentCaptor<Maybe<String>> testIdCaptor = ArgumentCaptor.forClass(Maybe.class);
    ArgumentCaptor<StartTestItemRQ> itemRqCaptor = ArgumentCaptor.forClass(StartTestItemRQ.class);
    // Start inner items
    verify(launch, times(4)).startTestItem(testIdCaptor.capture(), itemRqCaptor.capture());
    ArgumentCaptor<Maybe<String>> finishTestIdCaptor = ArgumentCaptor.forClass(Maybe.class);
    ArgumentCaptor<FinishTestItemRQ> finishItemRqCaptor = ArgumentCaptor.forClass(FinishTestItemRQ.class);
    verify(launch, times(5)).finishTestItem(finishTestIdCaptor.capture(), finishItemRqCaptor.capture());
    List<Pair<Pair<Maybe<String>, StartTestItemRQ>, Pair<Maybe<String>, FinishTestItemRQ>>> rqList = toList(suiteCaptor, testIdCaptor, itemRqCaptor, finishTestIdCaptor, finishItemRqCaptor);
    IntStream.range(1, 4).forEach(i -> {
        Pair<Pair<Maybe<String>, StartTestItemRQ>, Pair<Maybe<String>, FinishTestItemRQ>> item = rqList.get(i);
        Pair<Pair<Maybe<String>, StartTestItemRQ>, Pair<Maybe<String>, FinishTestItemRQ>> parent = rqList.get(i - 1);
        assertThat(item.getKey().getKey(), equalTo(parent.getValue().getKey()));
    });
    Pair<Pair<Maybe<String>, StartTestItemRQ>, Pair<Maybe<String>, FinishTestItemRQ>> item = rqList.get(4);
    Pair<Pair<Maybe<String>, StartTestItemRQ>, Pair<Maybe<String>, FinishTestItemRQ>> parent = rqList.get(2);
    assertThat(item.getKey().getKey(), equalTo(parent.getValue().getKey()));
}
Also used : Maybe(io.reactivex.Maybe) Launch(com.epam.reportportal.service.Launch) StartTestItemRQ(com.epam.ta.reportportal.ws.model.StartTestItemRQ) FinishTestItemRQ(com.epam.ta.reportportal.ws.model.FinishTestItemRQ) Pair(org.apache.commons.lang3.tuple.Pair) JunitDynamicNestedTest(com.epam.reportportal.junit5.features.nested.JunitDynamicNestedTest) Test(org.junit.jupiter.api.Test)

Example 23 with Launch

use of com.epam.reportportal.service.Launch in project agent-java-junit5 by reportportal.

the class ReportPortalExtension method getLaunch.

/**
 * Returns a current launch instance, starts new if no such instance
 *
 * @param context JUnit's launch context
 * @return represents current launch
 */
protected Launch getLaunch(ExtensionContext context) {
    return launchMap.computeIfAbsent(getLaunchId(context), id -> {
        ReportPortal rp = getReporter();
        ListenerParameters params = rp.getParameters();
        StartLaunchRQ rq = buildStartLaunchRq(params);
        Launch launch = rp.newLaunch(rq);
        Runtime.getRuntime().addShutdownHook(getShutdownHook(id));
        Maybe<String> launchIdResponse = launch.start();
        if (params.isCallbackReportingEnabled()) {
            TEST_ITEM_TREE.setLaunchId(launchIdResponse);
        }
        return launch;
    });
}
Also used : StartLaunchRQ(com.epam.ta.reportportal.ws.model.launch.StartLaunchRQ) ListenerParameters(com.epam.reportportal.listeners.ListenerParameters) ReportPortal(com.epam.reportportal.service.ReportPortal) Launch(com.epam.reportportal.service.Launch)

Example 24 with Launch

use of com.epam.reportportal.service.Launch in project agent-java-junit5 by reportportal.

the class ReportPortalExtension method finishBeforeAfter.

private void finishBeforeAfter(ExtensionContext context, Maybe<String> id, ItemStatus status) {
    Launch launch = getLaunch(context);
    launch.finishTestItem(id, buildFinishTestItemRq(context, status));
}
Also used : Launch(com.epam.reportportal.service.Launch)

Example 25 with Launch

use of com.epam.reportportal.service.Launch in project agent-java-junit5 by reportportal.

the class ReportPortalExtension method startBeforeAfter.

/**
 * Starts the following methods: <code>@BeforeEach</code>, <code>@AfterEach</code>, <code>@BeforeAll</code> or <code>@AfterAll</code>
 *
 * @param method        a method reference
 * @param parentContext JUnit's test context of a parent item
 * @param context       JUnit's test context of a method to start
 * @param itemType      a method's item type (to display on RP)
 * @return an ID of the method
 */
protected Maybe<String> startBeforeAfter(Method method, ExtensionContext parentContext, ExtensionContext context, ItemType itemType) {
    Launch launch = getLaunch(context);
    StartTestItemRQ rq = buildStartConfigurationRq(method, parentContext, context, itemType);
    return getItemId(parentContext).map(pid -> launch.startTestItem(pid, rq)).orElseGet(() -> launch.startTestItem(rq));
}
Also used : java.util(java.util) ListenerParameters(com.epam.reportportal.listeners.ListenerParameters) Launch(com.epam.reportportal.service.Launch) com.epam.ta.reportportal.ws.model(com.epam.ta.reportportal.ws.model) Maybe(io.reactivex.Maybe) LoggerFactory(org.slf4j.LoggerFactory) ReportPortal(com.epam.reportportal.service.ReportPortal) AttributeParser(com.epam.reportportal.utils.AttributeParser) TestCaseId(com.epam.reportportal.annotations.TestCaseId) TestItemTree(com.epam.reportportal.service.tree.TestItemTree) StringUtils(org.apache.commons.lang3.StringUtils) TestCaseIdEntry(com.epam.reportportal.service.item.TestCaseIdEntry) SystemAttributesFetcher.collectSystemAttributes(com.epam.reportportal.junit5.SystemAttributesFetcher.collectSystemAttributes) Attributes(com.epam.reportportal.annotations.attribute.Attributes) TestCaseIdUtils(com.epam.reportportal.utils.TestCaseIdUtils) Nonnull(javax.annotation.Nonnull) Method(java.lang.reflect.Method) Nullable(javax.annotation.Nullable) ParameterUtils(com.epam.reportportal.utils.ParameterUtils) TestItemTree.createTestItemLeaf(com.epam.reportportal.service.tree.TestItemTree.createTestItemLeaf) Logger(org.slf4j.Logger) Optional.ofNullable(java.util.Optional.ofNullable) TestAbortedException(org.opentest4j.TestAbortedException) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) ExceptionUtils.getStackTrace(org.apache.commons.lang3.exception.ExceptionUtils.getStackTrace) ItemStatus(com.epam.reportportal.listeners.ItemStatus) SaveLogRQ(com.epam.ta.reportportal.ws.model.log.SaveLogRQ) ParameterKey(com.epam.reportportal.annotations.ParameterKey) Collectors(java.util.stream.Collectors) ItemAttributesRQ(com.epam.ta.reportportal.ws.model.attribute.ItemAttributesRQ) StartLaunchRQ(com.epam.ta.reportportal.ws.model.launch.StartLaunchRQ) org.junit.jupiter.api(org.junit.jupiter.api) ItemType(com.epam.reportportal.junit5.ItemType) org.junit.jupiter.api.extension(org.junit.jupiter.api.extension) ItemTreeUtils.createItemTreeKey(com.epam.reportportal.junit5.utils.ItemTreeUtils.createItemTreeKey) AnnotatedElement(java.lang.reflect.AnnotatedElement) Launch(com.epam.reportportal.service.Launch)

Aggregations

Launch (com.epam.reportportal.service.Launch)33 StartTestItemRQ (com.epam.ta.reportportal.ws.model.StartTestItemRQ)22 Test (org.junit.jupiter.api.Test)18 Maybe (io.reactivex.Maybe)9 FinishTestItemRQ (com.epam.ta.reportportal.ws.model.FinishTestItemRQ)8 SingleTest (com.epam.reportportal.junit5.features.coderef.SingleTest)5 ListenerParameters (com.epam.reportportal.listeners.ListenerParameters)5 Collectors (java.util.stream.Collectors)5 CommonUtils (com.epam.reportportal.util.test.CommonUtils)4 ItemAttributesRQ (com.epam.ta.reportportal.ws.model.attribute.ItemAttributesRQ)4 StartLaunchRQ (com.epam.ta.reportportal.ws.model.launch.StartLaunchRQ)4 OneDisabledOneEnabledTest (com.epam.reportportal.junit5.features.disabled.OneDisabledOneEnabledTest)3 OneDisabledTest (com.epam.reportportal.junit5.features.disabled.OneDisabledTest)3 JunitDynamicNestedTest (com.epam.reportportal.junit5.features.nested.JunitDynamicNestedTest)3 AssumptionFailedTest (com.epam.reportportal.junit5.features.skipped.AssumptionFailedTest)3 BeforeEachAssumptionFailedTest (com.epam.reportportal.junit5.features.skipped.BeforeEachAssumptionFailedTest)3 ItemStatus (com.epam.reportportal.listeners.ItemStatus)3 ReportPortal (com.epam.reportportal.service.ReportPortal)3 ArgumentCaptor (org.mockito.ArgumentCaptor)3 Answer (org.mockito.stubbing.Answer)3