什么是让pg_prove运行测试用例并将结果输出为Junit xml样式的命令?
pg_prove -U ubuntu -d $DB database/test/all_database_tests.sql
我们可以使用--formatter TAP::Formatter::JUnit
或--harness TAP::Harness::JUnit
格式化输出吗?
答案 0 :(得分:0)
是的,使用TAP::Harness::JUnit
格式化测试结果。
JUNIT_OUTPUT_FILE=/tmp/circleci-test-results/all_database_tests_results.xml pg_prove -U ubuntu -d $DB database/test/all_database_tests.sql --verbose --harness TAP::Harness::JUnit
JUNIT_OUTPUT_FILE
告诉pg_prove测试结果文件的名称和路径;
--harness TAP::Harness::JUnit
告诉pg_prove输出哪种结果格式。
在安装TAP::Harness::JUnit
之前,可能需要通过命令sudo cpan XML::Simple
和XML::Simple
安装Test::Deep
。
完整示例如下:
git clone https://github.com/jlavallee/tap-harness-junit.git
git clone https://github.com/rjbs/Test-Deep.git
sudo cpan TAP::Parser::SourceHandler::pgTAP # Install pg_prove
psql -U ubuntu -d $DB -c "CREATE EXTENSION IF NOT EXISTS pgtap;" #Create pgtap extension;
sudo cpan XML::Simple #Install XML::Simple
cd Test-Deep && perl Makefile.PL && sudo make && sudo make test && sudo make install
cd tap-harness-junit && perl Build.PL && sudo ./Build && sudo ./Build install
JUNIT_OUTPUT_FILE=/tmp/circleci-test-results/all_database_tests_results.xml pg_prove -U ubuntu -d $DB database/test/all_database_tests.sql --verbose --harness TAP::Harness::JUnit