Сохранение результата в файле из модульных тестов с расширением vscode в DevOps Azure - PullRequest
0 голосов
/ 09 января 2019

У меня опять проблема ...

Я пытаюсь составить отчет о тестировании из моих тестов непрерывной интеграции в Azure DevOps Я написал модульные тесты, как описано в:
https://code.visualstudio.com/api/working-with-extensions/testing-extension

Я написал yml в основном как описано здесь:
https://code.visualstudio.com/api/working-with-extensions/continuous-integration

Теперь я хочу «опубликовать» результаты моего теста ... Я думаю, чтобы опубликовать их, мне нужно создать XML (или TRX) в одном из следующих форматов: JUnit, NUnit 2, NUnit 3, Visual Studio Test (TRX) и xUnit 2. Кажется, я ограничен в том, как создать репортер / тестраннер или что-то еще ... Я не понимаю.

Предоставленный API vscode выглядит следующим образом:

testRunner.configure({
    ui: "tdd",
    useColors: true
});

module.exports = testRunner;

Ожидаемый тип API:

 interface MochaSetupOptions {

        //milliseconds to wait before considering a test slow
        slow?: number;

        // timeout in milliseconds
        timeout?: number;

        // ui name "bdd", "tdd", "exports" etc
        ui?: string;

        //array of accepted globals
        globals?: any[];

        // reporter instance (function or string), defaults to `mocha.reporters.Dot`
        reporter?: any;

        // bail on the first test failure
        bail?: boolean;

        // ignore global leaks
        ignoreLeaks?: boolean;

        // grep string or regexp to filter tests with
        grep?: any;

        // colored output from test results
        useColors?: boolean;

        // causes test marked with only to fail the suite
        forbidOnly?: boolean;
    }

Я думаю, что моей лучшей попыткой было использование этого модуля https://www.npmjs.com/package/mocha-junit-reporter:

testRunner.configure({
    reporter: 'mocha-junit-reporter',
    reporterOptions: {
        mochaFile: './path_to_your/file.xml'
    }
});

Я знаю, что он подходит не к API, как описано, но когда вы посмотрите на исходный код модуля vscode:

function configure(opts) {
    mocha = new Mocha(opts);
}
exports.configure = configure;

Таким образом, он соответствует документации модуля "mocha-junit-reporter"

1 Ответ

0 голосов
/ 10 января 2019
let a: any = {
    ui: "tdd",
    reporter: "xunit",
    reporterOptions: {
        output: normalize(join(getExtensionRootPath(), "..", "TestResults", "unit-tests", os + ".xml")),
    }        
};

testRunner.configure(a);

это сделало это для меня, за исключением Linux. Я отредактирую этот ответ, если получу возможность управлять им и для Linux.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...