How to use from method of net.serenitybdd.junit.runners.ParameterizedTestsOutcomeAggregator class

Best Serenity JUnit code snippet using net.serenitybdd.junit.runners.ParameterizedTestsOutcomeAggregator.from

Source:WhenRunningADataDrivenTestScenario.java Github

copy

Full Screen

...67 @Test68 public void a_data_driven_test_driver_should_run_one_test_per_row_of_data() throws Throwable {69 SerenityParameterizedRunner runner = getStubbedTestRunnerUsing(SampleDataDrivenScenario.class);70 runner.run(new RunNotifier());71 List<TestOutcome> executedScenarios = ParameterizedTestsOutcomeAggregator.from(runner).getTestOutcomesForAllParameterSets();72 assertThat(executedScenarios.size(), is(36));73 }74 @Test75 public void manual_data_driven_tests_should_be_allowed() throws Throwable {76 SerenityParameterizedRunner runner = getStubbedTestRunnerUsing(AddDifferentSortsOfTodos.class);77 runner.run(new RunNotifier());78 List<TestOutcome> executedScenarios = ParameterizedTestsOutcomeAggregator.from(runner).getTestOutcomesForAllParameterSets();79 assertThat(executedScenarios.size(), is(4));80 }81 @Test82 public void a_data_driven_test_driver_should_aggregate_test_outcomes() throws Throwable {83 SerenityParameterizedRunner runner = getStubbedTestRunnerUsing(SampleDataDrivenScenario.class);84 runner.run(new RunNotifier());85 List<TestOutcome> aggregatedScenarios = ParameterizedTestsOutcomeAggregator.from(runner).aggregateTestOutcomesByTestMethods();86 assertThat(aggregatedScenarios.size(), is(3));87 assertThat(aggregatedScenarios.get(0).getStepCount(), is(12));88 assertThat(aggregatedScenarios.get(1).getStepCount(), is(12));89 }90 @Test91 public void a_data_driven_test_driver_should_record_a_sample_scenario() throws Throwable {92 SerenityParameterizedRunner runner = getStubbedTestRunnerUsing(SampleDataDrivenScenario.class);93 runner.run(new RunNotifier());94 List<TestOutcome> aggregatedScenarios = ParameterizedTestsOutcomeAggregator.from(runner).aggregateTestOutcomesByTestMethods();95 assertThat(aggregatedScenarios.get(0).getDataDrivenSampleScenario(), containsString("Step with parameters: <Parameter 1>, <Parameter 2>\n" +96 "Step that succeeds\n" +97 "Another step that succeeds"));98 }99 @Test100 public void a_data_driven_test_driver_should_record_a_table_of_example() throws Throwable {101 SerenityParameterizedRunner runner = getStubbedTestRunnerUsing(SampleSingleDataDrivenScenario.class);102 runner.run(new RunNotifier());103 List<TestOutcome> aggregatedScenarios = ParameterizedTestsOutcomeAggregator.from(runner).aggregateTestOutcomesByTestMethods();104 assertThat(aggregatedScenarios.size(), is(1));105 assertThat(aggregatedScenarios.get(0).getStepCount(), is(15));106 }107 @Test108 public void a_data_driven_test_with_a_failing_assumption_should_be_ignored() throws Throwable {109 SerenityParameterizedRunner runner = getStubbedTestRunnerUsing(SampleSingleDataDrivenScenarioWithFailingAssumption.class);110 runner.run(new RunNotifier());111 List<TestOutcome> aggregatedScenarios = ParameterizedTestsOutcomeAggregator.from(runner).aggregateTestOutcomesByTestMethods();112 assertThat(aggregatedScenarios.size(), is(1));113 assertThat(aggregatedScenarios.get(0).getStepCount(), is(15));114 for (TestStep step : aggregatedScenarios.get(0).getTestSteps()) {115 assertThat(step.getResult(), is(TestResult.IGNORED));116 }117 }118 @Test119 public void a_data_driven_test_driver_should_aggregate_test_outcomes_without_steps() throws Throwable {120 SerenityParameterizedRunner runner = getStubbedTestRunnerUsing(SimpleSuccessfulParametrizedTestSample.class);121 runner.run(new RunNotifier());122 List<TestOutcome> aggregatedScenarios = ParameterizedTestsOutcomeAggregator.from(runner).aggregateTestOutcomesByTestMethods();123 assertThat(aggregatedScenarios.size(), is(2));124 assertThat(aggregatedScenarios.get(0).getStepCount(), is(3));125 assertThat(aggregatedScenarios.get(1).getStepCount(), is(3));126 }127 @Test128 public void data_driven_tests_should_pass_even_if_no_steps_are_called() throws Throwable {129 SerenityParameterizedRunner runner = getStubbedTestRunnerUsing(SimpleSuccessfulParametrizedTestSample.class);130 runner.run(new RunNotifier());131 List<TestOutcome> aggregatedScenarios = ParameterizedTestsOutcomeAggregator.from(runner).aggregateTestOutcomesByTestMethods();132 assertThat(aggregatedScenarios.get(0).getResult(), is(TestResult.SUCCESS));133 assertThat(aggregatedScenarios.get(1).getResult(), is(TestResult.SUCCESS));134 }135 @Test136 public void an_ignored_data_driven_test_should_have_result_status_as_ignored() throws Throwable {137 SerenityParameterizedRunner runner = getStubbedTestRunnerUsing(SampleDataDrivenIgnoredScenario.class);138 runner.run(new RunNotifier());139 List<TestOutcome> aggregatedScenarios = ParameterizedTestsOutcomeAggregator.from(runner).aggregateTestOutcomesByTestMethods();140 assertThat(aggregatedScenarios.size(), is(1));141 assertThat(aggregatedScenarios.get(0).getResult(), is(TestResult.IGNORED));142 }143 @Test144 public void an_ignored_data_driven_test_should_have_a_step_for_each_row() throws Throwable {145 SerenityParameterizedRunner runner = getStubbedTestRunnerUsing(SampleDataDrivenIgnoredScenario.class);146 runner.run(new RunNotifier());147 List<TestOutcome> aggregatedScenarios = ParameterizedTestsOutcomeAggregator.from(runner).aggregateTestOutcomesByTestMethods();148 assertThat(aggregatedScenarios.size(), is(1));149 assertThat(aggregatedScenarios.get(0).getTestSteps().size(), is(10));150 }151 @Test152 public void a_pending_data_driven_test_should_have_result_status_as_pending() throws Throwable {153 SerenityParameterizedRunner runner = getStubbedTestRunnerUsing(SampleDataDrivenPendingScenario.class);154 runner.run(new RunNotifier());155 List<TestOutcome> aggregatedScenarios = ParameterizedTestsOutcomeAggregator.from(runner).aggregateTestOutcomesByTestMethods();156 assertThat(aggregatedScenarios.size(), is(1));157 assertThat(aggregatedScenarios.get(0).getResult(), is(TestResult.PENDING));158 }159 @Test160 public void a_pending_data_driven_test_should_have_a_test_step_for_each_row() throws Throwable {161 SerenityParameterizedRunner runner = getStubbedTestRunnerUsing(SampleDataDrivenPendingScenario.class);162 runner.run(new RunNotifier());163 List<TestOutcome> aggregatedScenarios = ParameterizedTestsOutcomeAggregator.from(runner).aggregateTestOutcomesByTestMethods();164 assertThat(aggregatedScenarios.size(), is(1));165 assertThat(aggregatedScenarios.get(0).getTestSteps().size(), is(10));166 }167 @Test168 public void a_data_driven_test_should_also_be_able_to_use_data_from_a_CSV_file() throws Throwable {169 SerenityParameterizedRunner runner = getTestRunnerUsing(SampleCSVDataDrivenScenario.class);170 runner.run(new RunNotifier());171 List<TestOutcome> executedScenarios = ParameterizedTestsOutcomeAggregator.from(runner).getTestOutcomesForAllParameterSets();172 assertThat(executedScenarios.size(), is(24));173 }174 @Test175 public void a_separate_json_report_should_be_generated_for_each_scenario() throws Throwable {176 File outputDirectory = tempFolder.newFolder("thucydides");177 environmentVariables.setProperty(ThucydidesSystemProperty.THUCYDIDES_OUTPUT_DIRECTORY.getPropertyName(),178 outputDirectory.getAbsolutePath());179 SerenityParameterizedRunner runner = getTestRunnerUsing(SampleDataDrivenScenario.class);180 runner.run(new RunNotifier());181 File[] reports = reload(outputDirectory).listFiles(new JSONFileFilter());182 assertThat(reports.length, is(3));183 }184 @Test185 public void a_separate_json_report_should_be_generated_for_each_scenario_when_using_data_from_a_CSV_file() throws Throwable {186 File outputDirectory = tempFolder.newFolder("thucydides");187 environmentVariables.setProperty(ThucydidesSystemProperty.THUCYDIDES_OUTPUT_DIRECTORY.getPropertyName(),188 outputDirectory.getAbsolutePath());189 SerenityParameterizedRunner runner = getTestRunnerUsing(SampleCSVDataDrivenScenario.class);190 runner.run(new RunNotifier());191 File[] reports = reload(outputDirectory).listFiles(new JSONFileFilter());192 assertThat(reports.length, is(2));193 }194 @Test195 public void json_report_contents_should_reflect_the_test_data_from_the_csv_file() throws Throwable {196 File outputDirectory = tempFolder.newFolder("thucydides");197 environmentVariables.setProperty(ThucydidesSystemProperty.THUCYDIDES_OUTPUT_DIRECTORY.getPropertyName(),198 outputDirectory.getAbsolutePath());199 SerenityParameterizedRunner runner = getTestRunnerUsing(SampleCSVDataDrivenScenario.class);200 runner.run(new RunNotifier());201 List<String> reportContents = contentsOf(reload(outputDirectory).listFiles(new JSONFileFilter()));202 assertThat(reportContents, hasItemContainsString("Jack Black"));203 assertThat(reportContents, hasItemContainsString("Joe Smith"));204 }205 private Matcher<? super List<String>> hasItemContainsString(String expectedValue) {206 return new HasItemContainsString(expectedValue);207 }208 private static class HasItemContainsString extends TypeSafeMatcher<List<String>> {209 private final String expectedValue;210 private HasItemContainsString(String expectedValue) {211 this.expectedValue = expectedValue;212 }213 @Override214 protected boolean matchesSafely(List<String> values) {215 return values.stream()216 .anyMatch(value -> value.contains(expectedValue));217 }218 public void describeTo(Description description) {219 description.appendText("Expecting a list containing a string that contains ").appendValue(expectedValue);220 }221 }222 @Test223 public void when_test_data_is_provided_for_a_step_a_single_test_should_be_executed() throws Throwable {224 File outputDirectory = tempFolder.newFolder("thucydides");225 environmentVariables.setProperty(ThucydidesSystemProperty.THUCYDIDES_OUTPUT_DIRECTORY.getPropertyName(),226 outputDirectory.getAbsolutePath());227 SerenityRunner runner = getNormalTestRunnerUsing(SamplePassingScenarioWithTestSpecificData.class);228 runner.run(new RunNotifier());229 List reportContents = contentsOf(reload(outputDirectory).listFiles(new JSONFileFilter()));230 assertThat(reportContents.size(), is(1));231 }232 @Test233 public void when_a_step_fails_for_a_row_the_other_rows_should_be_executed() throws Throwable {234 File outputDirectory = tempFolder.newFolder("thucydides");235 environmentVariables.setProperty(ThucydidesSystemProperty.THUCYDIDES_OUTPUT_DIRECTORY.getPropertyName(),236 outputDirectory.getAbsolutePath());237 SerenityRunner runner = getNormalTestRunnerUsing(ScenarioWithTestSpecificDataAndAFailingTestSample.class);238 runner.run(new RunNotifier());239 List<TestOutcome> executedSteps = runner.getTestOutcomes();240 assertThat(executedSteps.size(), is(1));241 TestOutcome testOutcome1 = executedSteps.get(0);242 List<TestStep> dataDrivenSteps = testOutcome1.getTestSteps();243 assertThat(dataDrivenSteps.size(), is(12));244 }245 @Test246 public void when_a_step_is_skipped_for_a_row_the_other_rows_should_be_executed() throws Throwable {247 File outputDirectory = tempFolder.newFolder("thucydides");248 environmentVariables.setProperty(ThucydidesSystemProperty.THUCYDIDES_OUTPUT_DIRECTORY.getPropertyName(),249 outputDirectory.getAbsolutePath());250 SerenityRunner runner = getNormalTestRunnerUsing(ScenarioWithTestSpecificDataAndAFailingTestSample.class);251 runner.run(new RunNotifier());252 List<TestOutcome> executedSteps = runner.getTestOutcomes();253 assertThat(executedSteps.size(), is(1));254 TestOutcome testOutcome1 = executedSteps.get(0);255 List<TestStep> dataDrivenSteps = testOutcome1.getTestSteps();256 assertThat(dataDrivenSteps.size(), is(12));257 }258 @Test259 public void browser_should_be_restarted_periodically_if_requested() throws Throwable {260 File outputDirectory = tempFolder.newFolder("thucydides");261 environmentVariables.setProperty(ThucydidesSystemProperty.THUCYDIDES_OUTPUT_DIRECTORY.getPropertyName(), outputDirectory.getAbsolutePath());262 environmentVariables.setProperty("thucydides.restart.browser.frequency", "5");263 SerenityParameterizedRunner runner = getTestRunnerUsing(SampleSingleSessionDataDrivenScenario.class);264 runner.run(new RunNotifier());265 }266 @Test267 public void when_a_step_fails_for_a_row_the_other_rows_should_not_be_skipped() throws Throwable {268 File outputDirectory = tempFolder.newFolder("thucydides");269 environmentVariables.setProperty(ThucydidesSystemProperty.THUCYDIDES_OUTPUT_DIRECTORY.getPropertyName(),270 outputDirectory.getAbsolutePath());271 SerenityRunner runner = getNormalTestRunnerUsing(ScenarioWithTestSpecificDataAndAFailingTestSample.class);272 runner.run(new RunNotifier());273 List<TestOutcome> executedSteps = runner.getTestOutcomes();274 assertThat(executedSteps.size(), is(1));275 TestOutcome testOutcome1 = executedSteps.get(0);276 List<TestStep> dataDrivenSteps = testOutcome1.getTestSteps();277 assertThat(dataDrivenSteps.size(), is(12));278 assertThat(dataDrivenSteps.get(1).getResult(), is(TestResult.FAILURE));279 assertThat(dataDrivenSteps.get(2).getResult(), is(TestResult.SUCCESS));280 }281 @Test282 public void when_a_parameterized_test_fails_outside_a_step_a_failure_should_be_recorded() throws Throwable {283 File outputDirectory = tempFolder.newFolder("thucydides");284 environmentVariables.setProperty(ThucydidesSystemProperty.THUCYDIDES_OUTPUT_DIRECTORY.getPropertyName(),285 outputDirectory.getAbsolutePath());286 SerenityParameterizedRunner runner = getTestRunnerUsing(SampleDataDrivenScenarioWithExternalFailure.class);287 runner.run(new RunNotifier());288 List<TestOutcome> executedScenarios = ParameterizedTestsOutcomeAggregator.from(runner).getTestOutcomesForAllParameterSets();289 assertThat(executedScenarios.size(), is(10));290 assertThat(executedScenarios.get(0).getResult(), is(TestResult.SUCCESS));291 assertThat(executedScenarios.get(1).getResult(), is(TestResult.FAILURE));292 assertThat(executedScenarios.get(2).getResult(), is(TestResult.SUCCESS));293 }294 @Test295 public void when_a_step_fails_with_an_error_for_a_row_the_other_rows_should_be_executed() throws Throwable {296 File outputDirectory = tempFolder.newFolder("thucydides");297 environmentVariables.setProperty(ThucydidesSystemProperty.THUCYDIDES_OUTPUT_DIRECTORY.getPropertyName(),298 outputDirectory.getAbsolutePath());299 SerenityRunner runner = getNormalTestRunnerUsing(ScenarioWithTestSpecificDataAndABreakingTestSample.class);300 runner.run(new RunNotifier());301 List<TestOutcome> executedSteps = runner.getTestOutcomes();302 assertThat(executedSteps.size(), is(1));303 TestOutcome testOutcome1 = executedSteps.get(0);304 List<TestStep> dataDrivenSteps = testOutcome1.getTestSteps();305 assertThat(dataDrivenSteps.size(), is(12));306 assertThat(dataDrivenSteps.get(1).getResult(), is(TestResult.ERROR));307 assertThat(dataDrivenSteps.get(2).getResult(), is(TestResult.SUCCESS));308 }309 @RunWith(SerenityRunner.class)310 public static class ScenarioWithTestSpecificDataSample {311 @Managed(driver = "htmlunit")312 public WebDriver webdriver;313 @ManagedPages(defaultUrl = "http://www.google.com")314 public Pages pages;315 @Steps316 public SampleScenarioSteps steps;317 @Test318 public void check_each_row() throws Throwable {319 withTestDataFrom("test-data/simple-data.csv").run(steps).data_driven_test_step();320 }321 }322 @RunWith(SerenityRunner.class)323 public static class ScenarioWithNestedTestSpecificDataSample {324 @Managed(driver = "htmlunit")325 public WebDriver webdriver;326 @ManagedPages(defaultUrl = "http://www.google.com")327 public Pages pages;328 @Steps329 public NestedDatadrivenSteps steps;330 @Test331 public void check_each_row() throws Throwable {332 steps.check_each_row();333 }334 }335 @RunWith(SerenityRunner.class)336 public static class ScenarioWithDeeplyNestedTestSpecificDataSample {337 @Managed(driver = "htmlunit")338 public WebDriver webdriver;339 @ManagedPages(defaultUrl = "http://www.google.com")340 public Pages pages;341 @Steps342 public NestedDatadrivenSteps steps;343 @Test344 public void happy_day_scenario() throws Throwable {345 steps.do_something();346 steps.run_data_driven_tests();347 steps.do_something_else();348 }349 }350 @RunWith(SerenityRunner.class)351 public static class ScenarioWithTestSpecificDataAndAFailingTestSample {352 @Managed(driver = "htmlunit")353 public WebDriver webdriver;354 @ManagedPages(defaultUrl = "http://www.google.com")355 public Pages pages;356 @Steps357 public SampleScenarioSteps steps;358 @Test359 public void happy_day_scenario() throws Throwable {360 withTestDataFrom("test-data/simple-data.csv").run(steps).data_driven_test_step_that_fails();361 }362 }363 @RunWith(SerenityRunner.class)364 public static class ScenarioWithTestSpecificDataAndASkippedTestSample {365 @Managed(driver = "htmlunit")366 public WebDriver webdriver;367 @ManagedPages(defaultUrl = "http://www.google.com")368 public Pages pages;369 @Steps370 public SampleScenarioSteps steps;371 @Test372 public void happy_day_scenario() throws Throwable {373 withTestDataFrom("test-data/simple-data.csv").run(steps).data_driven_test_step_that_is_skipped();374 }375 }376 @RunWith(SerenityRunner.class)377 public static class ScenarioWithTestSpecificDataAndABreakingTestSample {378 @Managed(driver = "htmlunit")379 public WebDriver webdriver;380 @ManagedPages(defaultUrl = "http://www.google.com")381 public Pages pages;382 @Steps383 public SampleScenarioSteps steps;384 @Test385 public void happy_day_scenario() throws Throwable {386 withTestDataFrom("test-data/simple-data.csv").run(steps).data_driven_test_step_that_breaks();387 }388 }389 @Test390 public void when_test_data_is_provided_for_a_step_then_a_step_should_be_reported_for_each_data_row() throws Throwable {391 File outputDirectory = tempFolder.newFolder("thucydides");392 environmentVariables.setProperty(ThucydidesSystemProperty.THUCYDIDES_OUTPUT_DIRECTORY.getPropertyName(),393 outputDirectory.getAbsolutePath());394 SerenityRunner runner = getNormalTestRunnerUsing(ScenarioWithTestSpecificDataSample.class);395 runner.run(new RunNotifier());396 List<TestOutcome> executedSteps = runner.getTestOutcomes();397 assertThat(executedSteps.size(), is(1));398 TestOutcome testOutcome1 = executedSteps.get(0);399 List<TestStep> dataDrivenSteps = testOutcome1.getTestSteps();400 assertThat(dataDrivenSteps.size(), is(12));401 }402 @Test403 public void when_test_data_is_provided_for_a_nested_step_then_a_step_should_be_reported_for_each_data_row() throws Throwable {404 File outputDirectory = tempFolder.newFolder("thucydides");405 environmentVariables.setProperty(ThucydidesSystemProperty.THUCYDIDES_OUTPUT_DIRECTORY.getPropertyName(),406 outputDirectory.getAbsolutePath());407 SerenityRunner runner = getNormalTestRunnerUsing(ScenarioWithNestedTestSpecificDataSample.class);408 runner.run(new RunNotifier());409 List<TestOutcome> executedSteps = runner.getTestOutcomes();410 assertThat(executedSteps.size(), is(1));411 TestOutcome testOutcome1 = executedSteps.get(0);412 List<TestStep> dataDrivenSteps = testOutcome1.getTestSteps().get(0).getChildren();413 assertThat(dataDrivenSteps.size(), is(12));414 }415 @Test416 public void when_test_data_is_provided_for_a_deeply_nested_step_then_a_step_should_be_reported_for_each_data_row() throws Throwable {417 File outputDirectory = tempFolder.newFolder("thucydides");418 environmentVariables.setProperty(ThucydidesSystemProperty.THUCYDIDES_OUTPUT_DIRECTORY.getPropertyName(),419 outputDirectory.getAbsolutePath());420 SerenityRunner runner = getNormalTestRunnerUsing(ScenarioWithDeeplyNestedTestSpecificDataSample.class);421 runner.run(new RunNotifier());422 List<TestOutcome> executedSteps = runner.getTestOutcomes();423 assertThat(executedSteps.size(), is(1));424 TestOutcome testOutcome1 = executedSteps.get(0);425 List<TestStep> dataDrivenSteps = testOutcome1.getTestSteps();426 assertThat(dataDrivenSteps.size(), is(3));427 }428 @Test429 public void test_step_data_should_appear_in_the_step_titles() throws Throwable {430 File outputDirectory = tempFolder.newFolder("thucydides");431 environmentVariables.setProperty(ThucydidesSystemProperty.THUCYDIDES_OUTPUT_DIRECTORY.getPropertyName(),432 outputDirectory.getAbsolutePath());433 SerenityRunner runner = getNormalTestRunnerUsing(ScenarioWithTestSpecificDataSample.class);434 runner.run(new RunNotifier());435 List<TestOutcome> executedSteps = runner.getTestOutcomes();436 TestOutcome testOutcome1 = executedSteps.get(0);437 List<TestStep> dataDrivenSteps = testOutcome1.getTestSteps();438 TestStep step1 = dataDrivenSteps.get(0);439 TestStep setNameStep1 = step1.getFlattenedSteps().get(0);440 TestStep step2 = dataDrivenSteps.get(1);441 TestStep setNameStep2 = step2.getFlattenedSteps().get(0);442 assertThat(setNameStep1.getDescription(), containsString("Joe Smith"));443 assertThat(setNameStep2.getDescription(), containsString("Jack Black"));444 }445 @Test446 public void running_a_simple_parameterized_test_should_produce_an_outcome_per_data_row() throws Throwable {447 File outputDirectory = tempFolder.newFolder("thucydides");448 environmentVariables.setProperty(ThucydidesSystemProperty.THUCYDIDES_OUTPUT_DIRECTORY.getPropertyName(),449 outputDirectory.getAbsolutePath());450 SerenityParameterizedRunner runner = getTestRunnerUsing(SimpleSuccessfulParametrizedTestSample.class);451 runner.run(new RunNotifier());452 List<String> reportContents = contentsOf(reload(outputDirectory).listFiles(new JSONFileFilter()));453 assertThat(reportContents.size(), is(2));454 }455 @Test456 public void when_the_Concurrent_annotation_is_used_tests_should_be_run_in_parallel() throws Throwable {457 File outputDirectory = tempFolder.newFolder("thucydides");458 environmentVariables.setProperty(ThucydidesSystemProperty.THUCYDIDES_OUTPUT_DIRECTORY.getPropertyName(),459 outputDirectory.getAbsolutePath());460 SerenityParameterizedRunner runner = getTestRunnerUsing(SampleParallelDataDrivenScenario.class);461 runner.run(new RunNotifier());462 List<String> reportContents = contentsOf(reload(outputDirectory).listFiles(new JSONFileFilter()));463 assertThat(reportContents, hasItemContainsString("Step with parameters: a, 1"));464 assertThat(reportContents, hasItemContainsString("Step with parameters: b, 2"));465 assertThat(reportContents, hasItemContainsString("Step with parameters: c, 3"));466 }467 @Test468 public void the_Concurrent_annotation_indicates_that_tests_should_be_run_in_parallel() throws Throwable {469 SerenityParameterizedRunner runner = getTestRunnerUsing(SampleParallelDataDrivenScenario.class);470 assertThat(runner.runTestsInParallelFor(SampleParallelDataDrivenScenario.class), is(true));471 assertThat(runner.runTestsInParallelFor(SampleDataDrivenScenario.class), is(false));472 }473 @Test474 public void by_default_the_number_of_threads_is_2_times_the_number_of_CPU_cores() throws Throwable {475 SerenityParameterizedRunner runner = getTestRunnerUsing(SampleParallelDataDrivenScenario.class);476 int threadCount = runner.getThreadCountFor(SampleParallelDataDrivenScenario.class);477 int AVAILABLE_PROCESSORS = Runtime.getRuntime().availableProcessors();478 assertThat(threadCount, is(AVAILABLE_PROCESSORS * 2));479 }480 @RunWith(SerenityParameterizedRunner.class)481 @Concurrent(threads = "7")482 public static final class ParallelDataDrivenScenarioWithSpecifiedThreadCountSample {483 @TestData484 public static Collection testData() {485 return Arrays.asList(new Object[][]{});486 }487 @Test488 public void foo() {489 }490 }491 @Test492 public void the_number_of_threads_can_be_overridden_in_the_concurrent_annotation() throws Throwable {493 SerenityParameterizedRunner runner494 = getTestRunnerUsing(ParallelDataDrivenScenarioWithSpecifiedThreadCountSample.class);495 int threadCount = runner.getThreadCountFor(ParallelDataDrivenScenarioWithSpecifiedThreadCountSample.class);496 assertThat(threadCount, is(7));497 }498 @Test499 public void the_number_of_threads_can_be_overridden_with_a_system_property() throws Throwable {500 environmentVariables.setProperty("thucydides.concurrent.threads", "4");501 SerenityParameterizedRunner runner502 = getTestRunnerUsing(ParallelDataDrivenScenarioWithSpecifiedThreadCountSample.class);503 int threadCount = runner.getThreadCountFor(ParallelDataDrivenScenarioWithSpecifiedThreadCountSample.class);504 assertThat(threadCount, is(4));505 }506 @RunWith(SerenityParameterizedRunner.class)507 @Concurrent(threads = "7x")508 public static final class ParallelDataDrivenScenarioWithRelativeThreadCountSample {509 @TestData510 public static Collection testData() {511 return Arrays.asList(new Object[][]{});512 }513 @Test514 public void foo() {515 }516 }517 @Test518 public void the_number_of_threads_can_be_overridden_in_the_concurrent_annotation_using_a_relative_value() throws Throwable {519 SerenityParameterizedRunner runner520 = getTestRunnerUsing(ParallelDataDrivenScenarioWithRelativeThreadCountSample.class);521 int threadCount = runner.getThreadCountFor(ParallelDataDrivenScenarioWithRelativeThreadCountSample.class);522 int AVAILABLE_PROCESSORS = Runtime.getRuntime().availableProcessors();523 assertThat(threadCount, is(7 * AVAILABLE_PROCESSORS));524 }525 @RunWith(SerenityParameterizedRunner.class)526 @Concurrent(threads = "xxx")527 public static final class ParallelDataDrivenScenarioWithInvalidThreadCountSample {528 @TestData529 public static Collection testData() {530 return Arrays.asList(new Object[][]{});531 }532 @Test533 public void foo() {534 }535 }536 @Test(expected = IllegalArgumentException.class)537 public void if_the_thread_count_is_invalid_an_exception_should_be_thrown() throws Throwable {538 SerenityParameterizedRunner runner539 = getTestRunnerUsing(ParallelDataDrivenScenarioWithInvalidThreadCountSample.class);540 runner.getThreadCountFor(ParallelDataDrivenScenarioWithInvalidThreadCountSample.class);541 }542 private List<String> filenamesOf(File[] files) {543 List filenames = new ArrayList<String>();544 for (File file : files) {545 filenames.add(file.getName());546 }547 return filenames;548 }549 private List<String> contentsOf(File[] files) throws IOException {550 List<String> contents = new ArrayList<>();551 for (File file : files) {552 contents.add(stringContentsOf(file));553 }554 return contents;555 }556 private String stringContentsOf(File reportFile) throws IOException {557 return FileUtils.readFileToString(reportFile);558 }559 private File reload(File old) {560 return Paths.get(old.getAbsolutePath()).toFile();561 }562 @Test563 public void a_separate_html_report_should_be_generated_from_each_scenario() throws Throwable {564 File outputDirectory = tempFolder.newFolder("thucydides");565 environmentVariables.setProperty(ThucydidesSystemProperty.THUCYDIDES_OUTPUT_DIRECTORY.getPropertyName(),566 outputDirectory.getAbsolutePath());567 SerenityParameterizedRunner runner = getTestRunnerUsing(SampleDataDrivenScenario.class);568 runner.run(new RunNotifier());569 File[] reports = reload(outputDirectory).listFiles(new HTMLFileFilter());570 assertThat(reports.length, is(3));571 }572 private class HTMLFileFilter implements FilenameFilter {573 public boolean accept(File directory, String filename) {574 return filename.endsWith(".html") && !filename.endsWith("screenshots.html");575 }576 }577 private class JSONFileFilter implements FilenameFilter {578 public boolean accept(File directory, String filename) {579 return filename.endsWith(".json") && !filename.startsWith("manifest");580 }581 }582 protected SerenityRunner getNormalTestRunnerUsing(Class<?> testClass) throws Throwable {583 DriverConfiguration configuration = new WebDriverConfiguration(environmentVariables);584 WebDriverFactory factory = new WebDriverFactory(environmentVariables);585 return new SerenityRunner(testClass, factory, configuration);586 }587 protected SerenityParameterizedRunner getTestRunnerUsing(Class<?> testClass) throws Throwable {588 return getTestRunnerUsing(testClass, environmentVariables);589 }590 protected SerenityParameterizedRunner getTestRunnerUsing(Class<?> testClass, EnvironmentVariables environmentVariables) throws Throwable {591 DriverConfiguration configuration = new WebDriverConfiguration(environmentVariables);592 WebDriverFactory factory = new WebDriverFactory(environmentVariables);593 BatchManager batchManager = new BatchManagerProvider(configuration).get();594 return new SerenityParameterizedRunner(testClass, configuration, factory, batchManager);595 }596 protected SerenityParameterizedRunner getStubbedTestRunnerUsing(Class<?> testClass) throws Throwable {597 DriverConfiguration configuration = new WebDriverConfiguration(environmentVariables);598 WebDriverFactory factory = new WebDriverFactory(environmentVariables);599 BatchManager batchManager = new BatchManagerProvider(configuration).get();600 return new SerenityParameterizedRunner(testClass, configuration, factory, batchManager) {601 @Override602 public void generateReports() {603 //do nothing604 }605 };606 }607 @Test608 public void parameterized_test_class_correct_number_of_test_methods_are_run_using_one_tag() throws Throwable {609 EnvironmentVariables environmentVariablesWithTags = environmentVariables;610 environmentVariables.setProperty("tags", "b");611 SerenityParameterizedRunner runner = getTestRunnerUsing(612 ExampleDataDrivenWithTestMethodTags.class,613 environmentVariablesWithTags614 );615 runner.run(new RunNotifier());616 List<TestOutcome> executedScenarios = ParameterizedTestsOutcomeAggregator.from(runner).getTestOutcomesForAllParameterSets();617 assertThat(executedScenarios.size(), is(1));618 }619 @Test620 public void parameterized_test_class_correct_number_of_test_methods_are_run_using_multiple_tags() throws Throwable {621 EnvironmentVariables environmentVariablesWithTags = environmentVariables;622 environmentVariables.setProperty("tags", "a or c");623 SerenityParameterizedRunner runner = getTestRunnerUsing(624 ExampleDataDrivenWithTestMethodTags.class,625 environmentVariablesWithTags626 );627 runner.run(new RunNotifier());628 List<TestOutcome> executedScenarios = ParameterizedTestsOutcomeAggregator.from(runner).getTestOutcomesForAllParameterSets();629 assertThat(executedScenarios.size(), is(2));630 }631 @RunWith(SerenityParameterizedRunner.class)632 public static class ExampleDataDrivenWithTestMethodTags {633 @TestData634 public static Collection<Object[]> testData() {635 List<Object[]> list = new ArrayList<>();636 list.add(new String[]{""});637 return list;638 }639 public ExampleDataDrivenWithTestMethodTags(String string) {640 }641 @Test642 @WithTag("a")...

Full Screen

Full Screen

Source:SerenityParameterizedRunner.java Github

copy

Full Screen

...24 private static final int AVAILABLE_PROCESSORS = Runtime.getRuntime().availableProcessors();25 private List<Runner> runners = new ArrayList<>();26 private final DriverConfiguration configuration;27 private ReportService reportService;28 private final ParameterizedTestsOutcomeAggregator parameterizedTestsOutcomeAggregator = ParameterizedTestsOutcomeAggregator.from(this);29 private TagScanner tagScanner;30 /**31 * Test runner used for testing purposes.32 *33 * @param klass The test class to run34 * @param configuration current system configuration (usually mocked)35 * @param webDriverFactory a webdriver factory (can be mocked)36 * @param batchManager a batch manager to process batched testing37 * @throws Throwable - cause anything can happen!38 */39 public SerenityParameterizedRunner(final Class<?> klass,40 DriverConfiguration configuration,41 final WebDriverFactory webDriverFactory,42 final BatchManager batchManager43 ) throws Throwable {44 super(klass, Collections.<Runner>emptyList());45 this.configuration = configuration;46 this.tagScanner = new TagScanner(configuration.getEnvironmentVariables());47 if (runTestsInParallelFor(klass)) {48 scheduleParallelTestRunsFor(klass);49 }50 DataDrivenAnnotations testClassAnnotations = getTestAnnotations();51 if (testClassAnnotations.hasTestDataDefined()) {52 runners = buildTestRunnersForEachDataSetUsing(webDriverFactory, batchManager);53 } else if (testClassAnnotations.hasTestDataSourceDefined()) {54 runners = buildTestRunnersFromADataSourceUsing(webDriverFactory, batchManager);55 }56 }57 private void scheduleParallelTestRunsFor(final Class<?> klass) {58 setScheduler(new ParameterizedRunnerScheduler(klass, getThreadCountFor(klass)));59 }60 public boolean runTestsInParallelFor(final Class<?> klass) {61 return (klass.getAnnotation(Concurrent.class) != null);62 }63 public int getThreadCountFor(final Class<?> klass) {64 Concurrent concurrent = klass.getAnnotation(Concurrent.class);65 String threadValue = getThreadParameter(concurrent);66 int threads = (AVAILABLE_PROCESSORS * 2);67 if (StringUtils.isNotEmpty(threadValue)) {68 if (StringUtils.isNumeric(threadValue)) {69 threads = Integer.parseInt(threadValue);70 } else if (threadValue.endsWith("x")) {71 threads = getRelativeThreadCount(threadValue);72 }73 }74 return threads;75 }76 private String getThreadParameter(Concurrent concurrent) {77 String systemPropertyThreadValue =78 configuration.getEnvironmentVariables().getProperty(ThucydidesJUnitSystemProperties.CONCURRENT_THREADS.getName());79 String annotatedThreadValue = concurrent.threads();80 return (StringUtils.isNotEmpty(systemPropertyThreadValue) ? systemPropertyThreadValue : annotatedThreadValue);81 }82 private int getRelativeThreadCount(final String threadValue) {83 try {84 String threadCount = threadValue.substring(0, threadValue.length() - 1);85 return Integer.parseInt(threadCount) * AVAILABLE_PROCESSORS;86 } catch (NumberFormatException cause) {87 throw new IllegalArgumentException("Illegal thread value: " + threadValue, cause);88 }89 }90 private List<Runner> buildTestRunnersForEachDataSetUsing(final WebDriverFactory webDriverFactory,91 final BatchManager batchManager) throws Throwable {92 if (shouldSkipTest(getTestAnnotations().getTestMethod())) {93 return new ArrayList<>();94 }95 List<Runner> runners = new ArrayList<>();96 DataTable parametersTable = getTestAnnotations().getParametersTableFromTestDataAnnotation();97 for (int i = 0; i < parametersTable.getRows().size(); i++) {98 Class<?> testClass = getTestClass().getJavaClass();99 SerenityRunner runner = new TestClassRunnerForParameters(testClass,100 configuration,101 webDriverFactory,102 batchManager,103 parametersTable,104 i);105 runner.useQualifier(from(parametersTable.getRows().get(i).getValues()));106 runners.add(runner);107 }108 return runners;109 }110 private List<Runner> buildTestRunnersFromADataSourceUsing(final WebDriverFactory webDriverFactory,111 final BatchManager batchManager) throws Throwable {112 if (shouldSkipTest(getTestAnnotations().getTestMethod())) {113 return new ArrayList<>();114 }115 List<Runner> runners = new ArrayList<>();116 List<?> testCases = getTestAnnotations().getDataAsInstancesOf(getTestClass().getJavaClass());117 DataTable parametersTable = getTestAnnotations().getParametersTableFromTestDataSource();118 for (int i = 0; i < testCases.size(); i++) {119 Object testCase = testCases.get(i);120 SerenityRunner runner = new TestClassRunnerForInstanciatedTestCase(testCase,121 configuration,122 webDriverFactory,123 batchManager,124 parametersTable,125 i);126 runner.useQualifier(getQualifierFor(testCase));127 runners.add(runner);128 }129 return runners;130 }131 private boolean shouldSkipTest(FrameworkMethod method) {132 return !tagScanner.shouldRunMethod(getTestClass().getJavaClass(), method.getName());133 }134 private String getQualifierFor(final Object testCase) {135 return QualifierFinder.forTestCase(testCase).getQualifier();136 }137 private DataDrivenAnnotations getTestAnnotations() {138 return DataDrivenAnnotations.forClass(getTestClass());139 }140 private String from(final Collection testData) {141 StringBuffer testDataQualifier = new StringBuffer();142 boolean firstEntry = true;143 for (Object testDataValue : testData) {144 if (!firstEntry) {145 testDataQualifier.append("/");146 }147 testDataQualifier.append(testDataValue);148 firstEntry = false;149 }150 return testDataQualifier.toString();151 }152 /**153 * Only called reflectively. Do not use programmatically.154 *...

Full Screen

Full Screen

Source:ParameterizedTestsOutcomeAggregator.java Github

copy

Full Screen

...8 private final SerenityParameterizedRunner serenityParameterizedRunner;9 private ParameterizedTestsOutcomeAggregator(SerenityParameterizedRunner serenityParameterizedRunner) {10 this.serenityParameterizedRunner = serenityParameterizedRunner;11 }12 public static ParameterizedTestsOutcomeAggregator from(SerenityParameterizedRunner serenityParameterizedRunner) {13 return new ParameterizedTestsOutcomeAggregator(serenityParameterizedRunner);14 }15 public List<TestOutcome> aggregateTestOutcomesByTestMethods() {16 List<TestOutcome> allOutcomes = getTestOutcomesForAllParameterSets();17 if (allOutcomes.isEmpty()) {18 return new ArrayList<>();19 } else {20 return aggregatedScenarioOutcomes(allOutcomes);21 }22 }23 private List<TestOutcome> aggregatedScenarioOutcomes(List<TestOutcome> allOutcomes) {24 Map<String, TestOutcome> scenarioOutcomes = new HashMap();25 for (TestOutcome testOutcome : allOutcomes) {26 final String normalizedMethodName = baseMethodName(testOutcome);...

Full Screen

Full Screen

Source:WhenRunningADataDrivenTestScenarioToCheckDuration.java Github

copy

Full Screen

...51 @Test52 public void a_data_driven_test_driver_should_aggregate_test_outcomes() throws Throwable {53 SerenityParameterizedRunner runner = getStubbedTestRunnerUsing(SampleDataDrivenScenarioWithDelays.class);54 runner.run(new RunNotifier());55 List<TestOutcome> aggregatedScenarios = ParameterizedTestsOutcomeAggregator.from(runner).aggregateTestOutcomesByTestMethods();56 for (TestOutcome test : aggregatedScenarios) {57 long duration = 0;58 for (TestStep step : test.getTestSteps()) {59 duration += step.getDuration();60 }61// assertThat("Duration of tests is invalid", test.getDuration() > 0, is(true));62 assertThat("Duration of tests invalid not propagated", test.getDuration(), is(duration));63 }64 }65 @Test66 public void a_data_driven_test_driver_should_aggregate_test_outcomes2() throws Throwable {67 SerenityParameterizedRunner runner = getStubbedTestRunnerUsing( SampleCSVDataDrivenScenarioWithDelays.class);68 runner.run(new RunNotifier());69 List<TestOutcome> aggregatedScenarios = ParameterizedTestsOutcomeAggregator.from(runner).aggregateTestOutcomesByTestMethods();70 for (TestOutcome test : aggregatedScenarios) {71 long duration = 0;72 for (TestStep step : test.getTestSteps()) {73 duration += step.getDuration();74 }75 assertThat("Duration of tests is invalid", test.getDuration() > 0, is(true));76 assertThat("Duration of tests invalid not propagated", test.getDuration(), is(duration));77 assertThat("Duration in seconds of tests invalid", test.getDurationInSeconds() > 0, is(true));78 }79 }80}...

Full Screen

Full Screen

from

Using AI Code Generation

copy

Full Screen

1 public List<Outcome> aggregate(List<Outcome> outcomes) {2 List<Outcome> aggregatedOutcomes = new ArrayList<Outcome>();3 for (Outcome outcome : outcomes) {4 if (outcome.isFailure()) {5 aggregatedOutcomes.add(outcome);6 }7 }8 return aggregatedOutcomes;9 }

Full Screen

Full Screen

from

Using AI Code Generation

copy

Full Screen

1 public static <T> List<T> uniqueValues(List<T> values) {2 ArrayList<T> uniqueValues = new ArrayList<>();3 for (T value : values) {4 if (!uniqueValues.contains(value)) {5 uniqueValues.add(value);6 }7 }8 return uniqueValues;9 }10}

Full Screen

Full Screen

from

Using AI Code Generation

copy

Full Screen

1 public static List<TestOutcome> aggregateTestOutcomesByParameterizedTest(List<TestOutcome> testOutcomes) {2 List<TestOutcome> parameterizedTestOutcomes = new ArrayList<>();3 for (TestOutcome testOutcome : testOutcomes) {4 if (testOutcome.isParameterized()) {5 parameterizedTestOutcomes.add(testOutcome);6 }7 }8 return parameterizedTestOutcomes;9 }10 public static List<TestOutcome> aggregateTestOutcomesByParameterizedTest(List<TestOutcome> testOutcomes) {11 return testOutcomes.stream().filter(TestOutcome::isParameterized).collect(Collectors.toList());12 }13 public static List<TestOutcome> aggregateTestOutcomesByParameterizedTest(List<TestOutcome> testOutcomes) {14 return testOutcomes.stream().filter(TestOutcome::isParameterized).collect(Collectors.toList());15 }16 public static List<TestOutcome> aggregateTestOutcomesByParameterizedTest(List<TestOutcome> testOutcomes) {17 return testOutcomes.stream().filter(TestOutcome::isParameterized).collect(Collectors.toList());18 }19 public static List<TestOutcome> aggregateTestOutcomesByParameterizedTest(List<TestOutcome> testOutcomes) {20 return testOutcomes.stream().filter(TestOutcome::isParameterized).collect(Collectors.toList());21 }22 public static List<TestOutcome> aggregateTestOutcomesByParameterizedTest(List<TestOutcome> testOutcomes) {23 return testOutcomes.stream().filter(TestOutcome::isParameterized).collect(Collectors.toList());24 }25 public static List<TestOutcome> aggregateTestOutcomesByParameterizedTest(List<TestOutcome> testOutcomes) {26 return testOutcomes.stream().filter(TestOutcome::isParameterized).collect(Collectors.toList());27 }28 public static List<TestOutcome> aggregateTestOutcomesByParameterizedTest(List<TestOutcome> testOutcomes) {29 return testOutcomes.stream().filter(TestOutcome::isParameterized).collect(Collectors.toList());30 }31 public static List<TestOutcome> aggregateTestOutcomesByParameterizedTest(List<TestOutcome> testOutcomes) {32 return testOutcomes.stream().filter(TestOutcome::isParameterized).collect(Collectors.toList());33 }34 public static List<TestOutcome> aggregateTestOutcomesByParameterizedTest(List<TestOutcome> testOutcomes) {

Full Screen

Full Screen

from

Using AI Code Generation

copy

Full Screen

1 public void testWithParameters(String first, String second) {2 System.out.println("Parameterized Number is : " + first + " and " + second);3 }4 public static Collection primeNumbers() {5 return Arrays.asList(new Object[][] {6 { "2", "2" },7 { "6", "35" },8 { "19", "46" },9 { "22", "63" }10 });11 }12}13@Timeout(value = 1, unit = TimeUnit.MINUTES)

Full Screen

Full Screen

from

Using AI Code Generation

copy

Full Screen

1 static List<Object[]> getParametersFrom(List<Runner> runners) {2 List<Object[]> parameters = new ArrayList<>();3 for (Runner runner : runners) {4 if (runner instanceof Parameterized) {5 List<Object[]> runnerParameters = ((Parameterized) runner).getParameters();6 parameters.addAll(runnerParameters);7 }8 }9 return parameters;10 }11}12@CucumberOptions(features = "src/test/resources/features")13@RunWith(SerenityParameterizedRunner.class)14public class CucumberTestSuite extends ParameterizedTestsOutcomeAggregator {15 public CucumberTestSuite(Class<?> klass, RunnerBuilder builder) throws InitializationError {16 super(klass, builder);17 }18 protected List<Runner> getChildren() {19 List<Runner> runners = super.getChildren();20 return runners;21 }22 protected List<Object[]> getParametersFrom(List<Runner> runners) {23 List<Object[]> parameters = new ArrayList<>();24 for (Runner runner : runners) {25 if (runner instanceof Parameterized) {26 List<Object[]> runnerParameters = ((Parameterized) runner).getParameters();27 parameters.addAll(runnerParameters);28 }29 }30 return parameters;31 }32}33public class LoginTest {34 WebDriver driver;35 public void setup() {36 System.setProperty("webdriver.chrome.driver", "C:\\Users\\Sonia\\Documents\\Selenium\\chromedriver.exe");37 driver = new ChromeDriver();38 }

Full Screen

Full Screen

from

Using AI Code Generation

copy

Full Screen

1 public int getTestCount() {2 return testCount;3 }4 public int getSkipCount() {5 return skipCount;6 }7 public int getFailureCount() {8 return failureCount;9 }10 public int getIgnoreCount() {11 return ignoreCount;12 }13 public int getSuccessCount() {14 return successCount;15 }16 public int getTotalCount() {17 return totalCount;18 }19 public int getPendingCount() {20 return pendingCount;21 }22 public int getErrorCount() {23 return errorCount;24 }25 public int getNotRunCount() {26 return notRunCount;27 }28 public int getAssumptionFailureCount() {29 return assumptionFailureCount;30 }

Full Screen

Full Screen

from

Using AI Code Generation

copy

Full Screen

1 private String getParameterizedDescription(Description description) {2 String methodName = description.getMethodName();3 String parameterizedName = methodName.substring(0, methodName.lastIndexOf('['));4 String parameters = methodName.substring(methodName.lastIndexOf('['));5 if (parameters.contains(",")) {6 parameters = parameters.replace(",", " ");7 }8 return parameterizedName + parameters;9 }10 private String getParameterizedDescription(Description description) {11 String methodName = description.getMethodName();12 String parameterizedName = methodName.substring(0, methodName.lastIndexOf('['));13 String parameters = methodName.substring(methodName.lastIndexOf('['));14 if (parameters.contains(",")) {15 parameters = parameters.replace(",", " ");16 }17 return parameterizedName + parameters;18 }19 private String getParameterizedDescription(Description description) {20 String methodName = description.getMethodName();21 String parameterizedName = methodName.substring(0, methodName.lastIndexOf('['));22 String parameters = methodName.substring(methodName.lastIndexOf('['));23 if (parameters.contains(",")) {24 parameters = parameters.replace(",", " ");25 }26 return parameterizedName + parameters;27 }28 private String getParameterizedDescription(Description description) {29 String methodName = description.getMethodName();30 String parameterizedName = methodName.substring(0, methodName.lastIndexOf('['));31 String parameters = methodName.substring(methodName.lastIndexOf('['));32 if (parameters.contains(",")) {33 parameters = parameters.replace(",", " ");34 }35 return parameterizedName + parameters;36 }37 private String getParameterizedDescription(Description description) {38 String methodName = description.getMethodName();39 String parameterizedName = methodName.substring(0, methodName.lastIndexOf('['));40 String parameters = methodName.substring(methodName.lastIndexOf('['));41 if (parameters.contains(",")) {42 parameters = parameters.replace(",", " ");43 }44 return parameterizedName + parameters;45 }46 private String getParameterizedDescription(Description description) {47 String methodName = description.getMethodName();48 String parameterizedName = methodName.substring(0, methodName.lastIndexOf('['));49 String parameters = methodName.substring(methodName.lastIndexOf('['));50 if (parameters.contains(",")) {51 parameters = parameters.replace(",", " ");52 }53 return parameterizedName + parameters;54 }55 private String getParameterizedDescription(Description description) {56 String methodName = description.getMethodName();57 String parameterizedName = methodName.substring(0, methodName.lastIndexOf('['));58 String parameters = methodName.substring(methodName.lastIndexOf('['));59 if (parameters.contains(","))

Full Screen

Full Screen

from

Using AI Code Generation

copy

Full Screen

1public static String generateReportFor(List<TestMethodOutcome> outcomes) {2 StringBuilder report = new StringBuilder();3 for (TestMethodOutcome testMethodOutcome : outcomes) {4 report.append("### ").append(testMethodOutcome.getName()).append("5");6 report.append("7");8 report.append("Test parameters: ").append(testMethodOutcome.getParameters()).append("9");10 report.append("11");12 report.append("Test duration: ").append(testMethodOutcome.getDuration()).append("13");14 report.append("15");16 report.append("Test result: ").append(testMethodOutcome.getResult()).append("17");18 report.append("19");20 report.append("Test error: ").append(testMethodOutcome.getError()).append("21");22 report.append("23");24 report.append("Test failure: ").append(testMethodOutcome.getFailure()).append("25");26 report.append("27");28 report.append("Test skipped: ").append(testMethodOutcome.getSkipped()).append("29");30 report.append("31");32 report.append("Test pending: ").append(testMethodOutcome.getPending()).append("33");34 report.append("35");36 report.append("Test ignored: ").append(testMethodOutcome.getIgnored()).append("37");38 report.append("39");40 report.append("Test issues: ").append(testMethodOutcome.getIssues()).append("41");42 report.append("43");44 report.append("Test tags: ").append(testMethodOutcome.getTags()).append("45");46 report.append("47");48 report.append("Test story: ").append(testMethodOutcome.getStory()).append("49");50 report.append("51");52 report.append("Test step: ").append(testMethodOutcome.getStep()).append("53");54 report.append("55");56 report.append("Test step description: ").append(testMethodOutcome.getStepDescription()).append("57");58 report.append("59");60 report.append("Test step duration: ").append(testMethodOutcome.getStepDuration()).append("61");62 report.append("63");64 report.append("Test step result: ").append(testMethodOutcome.getStepResult()).append("65");66 report.append("67");68 report.append("Test step error: ").append(testMethodOutcome.getStepError()).append("69");70 report.append("71");72 report.append("Test step failure: ").append(testMethodOutcome.getStepFailure()).append("73");74 report.append("75");76 report.append("Test step skipped:

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run Serenity JUnit automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Most used method in ParameterizedTestsOutcomeAggregator

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful