@Override public void aggregate(final Configuration configuration, final List<LaunchResults> launchesResults, final Path outputDirectory) throws IOException { for (Aggregator aggregator : aggregators) { aggregator.aggregate(configuration, launchesResults, outputDirectory); } } }
@Override public void aggregate(final Configuration configuration, final List<LaunchResults> launchesResults, final Path outputDirectory) throws IOException { writePluginsStatic(configuration, outputDirectory); writeIndexHtml(configuration, outputDirectory); } }
public void aggregate(final List<LaunchResults> results, final Path outputDirectory) throws IOException { for (Aggregator aggregator : configuration.getAggregators()) { aggregator.aggregate(configuration, results, outputDirectory); } }
/** * Generate Allure report data from directories with allure report results. * * @param args a list of directory paths. First (args.length - 1) arguments - * results directories, last argument - the folder to generated data */ public static void main(final String... args) throws IOException { if (args.length < MIN_ARGUMENTS_COUNT) { LOGGER.error("There must be at least two arguments"); return; } final int lastIndex = args.length - 1; final Path[] files = getFiles(args); final List<Plugin> plugins = loadPlugins(); LOGGER.info("Found {} plugins", plugins.size()); plugins.forEach(plugin -> LOGGER.info(plugin.getConfig().getName())); final Configuration configuration = new ConfigurationBuilder() .fromExtensions(EXTENSIONS) .fromPlugins(plugins) .build(); final ReportGenerator generator = new ReportGenerator(configuration); generator.generate(files[lastIndex], Arrays.copyOf(files, lastIndex)); }
@Test public void shouldAllowEmptyResultsDirectory() throws Exception { final Path resultsDirectory = folder.newFolder().toPath(); final Path outputDirectory = folder.newFolder().toPath(); final Configuration configuration = new ConfigurationBuilder().useDefault().build(); final ReportGenerator generator = new ReportGenerator(configuration); generator.generate(outputDirectory, resultsDirectory); }
public LaunchResults readResults(final Path resultsDirectory) { final DefaultResultsVisitor visitor = new DefaultResultsVisitor(configuration); configuration .getReaders() .forEach(reader -> reader.readResults(configuration, visitor, resultsDirectory)); return visitor.getLaunchResults(); }
@Override public void aggregate(final Configuration configuration, final List<LaunchResults> launchesResults, final Path outputDirectory) throws IOException { addCategoriesForResults(launchesResults); super.aggregate(configuration, launchesResults, outputDirectory); }
public LaunchResults getLaunchResults() { return new DefaultLaunchResults( Collections.unmodifiableSet(results), Collections.unmodifiableMap(attachments), Collections.unmodifiableMap(extra) ); }
@Test public void shouldLoadConfig() throws Exception { final Path home = folder.newFolder().toPath(); createConfig(home, "allure-test.yml"); final ConfigOptions options = mock(ConfigOptions.class); when(options.getProfile()).thenReturn("test"); final Commands commands = new Commands(home); final CommandlineConfig config = commands.getConfig(options); assertThat(config) .isNotNull(); assertThat(config.getPlugins()) .hasSize(3) .containsExactly("a", "b", "c"); }
public void generate(final Path outputDirectory, final Path... resultsDirectories) throws IOException { generate(outputDirectory, Stream.of(resultsDirectories)); }
@Test public void shouldPrintPluginList() throws Exception { final Optional<ExitCode> exitCode = commandLine.parse(PLUGIN_COMMAND); assertThat(exitCode) .isEmpty(); when(commands.listPlugins(any(ConfigOptions.class))).thenReturn(NO_ERROR); final ExitCode run = commandLine.run(); assertThat(run) .isEqualTo(NO_ERROR); }
public Configuration build() { return new DefaultConfiguration( Collections.unmodifiableList(extensions), Collections.unmodifiableList(plugins) ); } }
private void generate(final Path outputDirectory, final Stream<Path> resultsDirectories) throws IOException { final List<LaunchResults> results = resultsDirectories .filter(this::isValidResultsDirectory) .map(this::readResults) .collect(Collectors.toList()); aggregate(results, outputDirectory); }
@Test public void shouldParseEmptyArguments() throws Exception { final Optional<ExitCode> parse = commandLine.parse(); assertThat(parse) .hasValue(ExitCode.ARGUMENT_PARSING_ERROR); }
@Before public void setUp() throws Exception { this.commands = mock(Commands.class); this.commandLine = new CommandLine(commands); }
@Test public void shouldAllowRegularFileAsResultsDirectory() throws Exception { final Path resultsDirectory = folder.newFile().toPath(); final Path outputDirectory = folder.newFolder().toPath(); final Configuration configuration = new ConfigurationBuilder().useDefault().build(); final ReportGenerator generator = new ReportGenerator(configuration); generator.generate(outputDirectory, resultsDirectory); } }
public void generate(final Path outputDirectory, final List<Path> resultsDirectories) throws IOException { generate(outputDirectory, resultsDirectories.stream()); }
@Test public void shouldValidatePortValue() throws Exception { final Optional<ExitCode> exitCode = commandLine.parse(SERVE_COMMAND, "--port", "213123"); assertThat(exitCode) .isPresent() .hasValue(ARGUMENT_PARSING_ERROR); }
@BeforeClass public static void setUp() throws Exception { final Configuration configuration = new ConfigurationBuilder().useDefault().build(); final ReportGenerator generator = new ReportGenerator(configuration); output = folder.newFolder().toPath(); final Path resultsDirectory = folder.newFolder().toPath(); unpackDummyResources("allure1data/", resultsDirectory); generator.generate(output, resultsDirectory); }
@Test public void shouldAllowNonExistsResultsDirectory() throws Exception { final Path resultsDirectory = folder.newFolder().toPath().resolve("some-dir"); final Path outputDirectory = folder.newFolder().toPath(); final Configuration configuration = new ConfigurationBuilder().useDefault().build(); final ReportGenerator generator = new ReportGenerator(configuration); generator.generate(outputDirectory, resultsDirectory); }