Транспортир: определите, что результаты репортера Allure будут расположены в другом месте.

Я использую Protractor и jasmine-allure-reporter. Я запускаю транспортир из сценария bash, и проблема связана с resultsDir, потому что я хочу, чтобы результаты генерировались в определенной папке. В настоящее время они генерируются в папке ~/e2e/project_name/conf/allure-results/. Мне нужно, чтобы они были сгенерированы в ~/e2e/reports/project_name/allure_results/. Просто ввод полного пути resultsDir: '/home/e2e/reports/project_name/allure-results' в параметр resultsDir ничего не меняет. Как я могу это решить?

Текущая настройка в файле conf.js:

browser.manage().timeouts().implicitlyWait(15000);
var AllureReporter = require('jasmine-allure-reporter');
jasmine.getEnv().addReporter(new AllureReporter({
    allureReport: {
        resultsDir: 'allure-results'
    }
}));

Желаемая настройка в файле conf.js:

browser.manage().timeouts().implicitlyWait(15000);
var AllureReporter = require('jasmine-allure-reporter');
jasmine.getEnv().addReporter(new AllureReporter({
    allureReport: {
        resultsDir: '~/e2e/reports/project_name/allure_results/allure-results'
    }
}));

person jurijk    schedule 16.03.2017    source источник
comment
Должно сработать Уважаемый.   -  person Kishan Patel    schedule 16.03.2017
comment
К сожалению, это не так. Что бы я ни писал в параметре resultsDir, он все равно генерирует результаты в ~/e2e/project_name/conf/allure-results/. Например, если я установил ~/e2e/does_not_exist_folder_name/conf/allure-results/, они все равно будут генерироваться в ~/e2e/project_name/conf/allure-results/.   -  person jurijk    schedule 16.03.2017
comment
Это сработало для вас?   -  person Kishan Patel    schedule 16.03.2017


Ответы (1)


Я нашел ответ для вас:

Существует один файл с именем Jasmine2AllureReporter.js под \node_modules\jasmine-allure-reporter\src\jasmine2AllureReporter.js.

Откройте файл:

Измените следующее и попробуйте:

Как я взял пример D:\\K\\allure-results

Поменяй так же под pluginConfig.resultsDir и var outDir, будет работать.

function Jasmine2AllureReporter(userDefinedConfig, allureReporter) {
var Status = {PASSED: 'passed', FAILED: 'failed', BROKEN: 'broken', PENDING: 'pending'};
this.allure = allureReporter || allure;
this.configure = function(userDefinedConfig) {
var pluginConfig = {};
userDefinedConfig = userDefinedConfig || {};
pluginConfig.resultsDir = 'D:\\K\\allure-results';
//pluginConfig.resultsDir = userDefinedConfig.resultsDir || 'allure-results';
pluginConfig.basePath = userDefinedConfig.basePath || '.';
// var outDir = path.resolve(pluginConfig.basePath, pluginConfig.resultsDir);
var outDir = 'D:\\K\\allure-results';
this.allure.setOptions({targetDir: outDir});
};
person Kishan Patel    schedule 16.03.2017
comment
Это может быть полезно, но в моем случае это не так. А именно, допустим, у нас есть имя_проекта_1 и имя_проекта_2. Таким образом, у меня будут папки с именами reports/project_name_1 и reports/project_name_2, каждая из которых содержит собственные результаты. В присланном вами примере это невозможно. Поэтому моя главная цель — разделить отчеты по проектам. Например, в conf.js для проекта 1 папка resultsDir: '~/.../results/project_name_1' и в conf.js для проекта 2 папка resultsDir: '~/...results/project_name_2'. - person jurijk; 16.03.2017
comment
В настоящее время 10. Возможно, у вас есть какие-либо другие предложения? - person jurijk; 16.03.2017
comment
Вероятно, вы можете создать 10-jasmine-allure-reporter, например jasmine-allure-reporter-1 и так далее. А затем измените его также в конфиге var AllureReporter = require('jasmine-allure-reporter-1');, чтобы у вас было 10 отдельных jasmine2AllureReporter.js файлов. - person Kishan Patel; 16.03.2017
comment
Есть один файл node_modules\jasmine-allure-reporter\test\unit\allureReporter.spec.js В этом var Reporter = require('../../src/Jasmine2AllureReporter.js').Jasmine2AllureReporter; Вероятно, вы можете создать 10 Jasmine2AllureReporter.js и персонализировать их. Попробуйте. - person Kishan Patel; 16.03.2017
comment
Хорошая мысль, но я сделаю это по-другому. Проблема с вашим предложением заключается в том, что в итоге мы можем получить N число репортеров очарования, которые все одинаковы, за исключением того, что resultsDir отличается для каждого. Поэтому я буду запускать каждый скрипт bash в каждой папке проекта, которая не элегантное решение, но в настоящее время работает. - person jurijk; 16.03.2017
comment
Пожалуйста, взгляните на этот файл allureReporte‌​r.spec.js - person Kishan Patel; 16.03.2017