Сохранение результата в файле из модульных тестов с расширением vscode в DevOps Azure
У меня опять проблема...
Я пытаюсь составить тестовый отчет из моих тестов непрерывной интеграции в 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-module:
function configure(opts) {
mocha = new Mocha(opts);
}
exports.configure = configure;
Так что это соответствует документации модуля "mocha-junit-reporter"
1 ответ
let a: any = {
ui: "tdd",
reporter: "xunit",
reporterOptions: {
output: normalize(join(getExtensionRootPath(), "..", "TestResults", "unit-tests", os + ".xml")),
}
};
testRunner.configure(a);
это сделало это для меня, за исключением Linux. Я отредактирую этот ответ, если получу возможность управлять им и для Linux.