T164 - Implement junit output support in test_runner.py
Summary:
Test results are saved in test/functional/junit_results.xml (if you have better location, please propose it).
Here is part of output:
<?xml version="1.0" encoding="UTF-8"?> <testsuite failures="0" id="0" name="bitcoin_abc_tests" skipped="1" tests="65" time="227" timestamp="2018-02-13T06:11:18.717714"> <testcase classname="abandonconflict.py" name="abandonconflict.py" time="15"> <system-out>2018-02-13 11:09:07.161000 TestFramework (INFO): Initializing test directory /tmp/bitcoin_test_runner_20180213_060723/abandonconflict_604 2018-02-13 11:09:19.598000 TestFramework (INFO): If balance has not declined after invalidateblock then out of mempool wallet tx which is no longer 2018-02-13 11:09:19.598000 TestFramework (INFO): conflicted has not resumed causing its inputs to be seen as spent. See Issue #7315 2018-02-13 11:09:19.599000 TestFramework (INFO): 2489.99988480 -> 2489.99988480 ? 2018-02-13 11:09:19.599000 TestFramework (INFO): Stopping nodes 2018-02-13 11:09:21.816000 TestFramework (INFO): Cleaning up 2018-02-13 11:09:21.819000 TestFramework (INFO): Tests successful </system-out> <system-err/> </testcase> <testcase classname="abc-cmdline.py" name="abc-cmdline.py" time="8">
Unfortunately the test framework does not expose individual asserts/tests so we ouput one testcase per .py file (see abc-p2p-fullblocktest.py, which acutlaz runs 36 tests)
Refs T164
Test Plan: ./test/functional/test_runner.py
Reviewers: schancel, O1 Bitcoin ABC, #bitcoin_abc
Reviewed By: schancel, O1 Bitcoin ABC, #bitcoin_abc
Subscribers: teamcity
Maniphest Tasks: T164
Differential Revision: https://reviews.bitcoinabc.org/D1089