Raportowanie Junit
Reporter WebdriverIO, który tworzy raporty JUnit w formacie XML kompatybilne z Jenkins
Instalacja
Najłatwiejszym sposobem jest utrzymanie @wdio/junit-reporter
jako devDependency w twoim pliku package.json
, poprzez:
npm install @wdio/junit-reporter --save-dev
Instrukcje jak zainstalować WebdriverIO
można znaleźć tutaj.
Wynik
Ten reporter wygeneruje raport dla każdego uruchomienia, więc w rezultacie otrzymasz raport XML dla każdego pliku specyfikacji. Poniżej znajdują się przykłady danych wyjściowych XML dla różnych scenariuszy w pliku specyfikacji.
Pojedynczy blok describe
describe('a test suite', () => {
it('a test case', function () {
// do something
// assert something
});
});
staje się
<testsuites>
<testsuite name="a test suite" timestamp="2019-04-18T13:45:21" time="11.735" tests="0" failures="0" errors="0" skipped="0">
<properties>
<property name="specId" value="0"/>
<property name="suiteName" value="a test suite"/>
<property name="capabilities" value="chrome"/>
<property name="file" value=".\test\specs\asuite.spec.js"/>
</properties>
<testcase classname="chrome.a_test_case" name="a_test_suite_a_test_case" time="11.706"/>
</testsuite>
</testsuites>
Zagnieżdżony blok describe
describe('a test suite', () => {
describe('a nested test suite', function() {
it('a test case', function () {
// do something
// assert something
});
});
});
staje się
<testsuites>
<testsuite name="a test suite" timestamp="2019-04-18T13:45:21" time="11.735" tests="0" failures="0" errors="0" skipped="0">
<properties>
<property name="specId" value="0"/>
<property name="suiteName" value="a test suite"/>
<property name="capabilities" value="chrome"/>
<property name="file" value=".\test\specs\asuite.spec.js"/>
</properties>
</testsuite>
<testsuite name="a nested test suite" timestamp="2019-04-18T13:45:21" time="11.735" tests="0" failures="0" errors="0" skipped="0">
<properties>
<property name="specId" value="0"/>
<property name="suiteName" value="a nested test suite"/>
<property name="capabilities" value="chrome"/>
<property name="file" value=".\test\specs\asuite.spec.js"/>
</properties>
<testcase classname="chrome.a_test_case" name="a nested test suite a test case" time="11.706"/>
</testsuite>
</testsuites>