swetechuck / junit-merger-cli
一个CLI工具,可以将两个或多个JUnit XML文件合并成一个。
1.0.0
2022-12-18 18:37 UTC
Requires
- php: >=7.4
- ext-json: *
- psr/log: ^1.1
- sweetchuck/junit-merger: 1.x-dev
- symfony/console: ^5.1 || ^6.0
- symfony/dependency-injection: ^5.3 || ^6.0
Requires (Dev)
- codeception/codeception: ^4.1
- codeception/module-asserts: ^1.3
- codeception/module-cli: ^1.1
- consolidation/robo: ^3.0
- mikey179/vfsstream: ^1.6
- nuvoleweb/robo-config: ^2.0
- squizlabs/php_codesniffer: ^3.6
- sweetchuck/git-hooks: 2.x-dev
- sweetchuck/robo-composer: 2.x-dev
- sweetchuck/robo-git: 2.x-dev
- sweetchuck/robo-phpcs: 2.x-dev
- sweetchuck/utils: 1.x-dev
- symfony/error-handler: ^5.3 || ^6.0
- symfony/finder: ^5.3 || ^6.0
- symfony/yaml: ^5.4 || ^6.0
This package is auto-updated.
Last update: 2024-08-26 13:52:41 UTC
README
正如其名,这个CLI工具可以帮助合并两个或多个JUnit XML文件。
底层它使用了JUnit merger库。
用法
默认情况下,它逐行从标准输入读取输入文件名,并将结果XML内容输出到标准输出。
所以基本用法如下
find path/to/junit -type f -name '*.xml' | junit-merger merge:files
输入文件名也可以作为参数提供。例如:
junit-merger merge:files 1.xml 2.xml
可以将合并后的XML内容放入文件中,使用标准的shell重定向。例如:
junit-merger merge:files 1.xml 2.xml > junit.xml
或者使用--output-file
CLI选项。例如:
junit-merger merge:files --output-file='junit.xml' 1.xml 2.xml
用法 - 处理程序
处理程序负责读取和解析输入文件,并生成合并后的XML内容。
要使用的处理程序可以通过--handler
选项控制。例如:
junit-merger merge:files --handler='dom_read_write' 1.xml 2.xml
有三个可用的选项
用法 - 处理程序 - dom_read_write
使用这个处理程序,输入文件使用\DOMDocument进行解析,输出也使用它生成。
它既安全又可靠,但资源消耗大。
另一方面,这个处理程序重新计算所有的<testsuite tests assertions errors warnings failures skipped time />
属性。
当多个<testcase />
来自不同的输入文件并且属于同一个<testsuite />
时,这可能很有用。
用法 - 处理程序 - dom_read
使用这个处理程序,输入文件使用\DOMDocument进行解析,输出使用字符串连接生成。
用法 - 处理程序 - substr
输入文件在<testsuites>
标签的打开位置和</testsuites>
标签的关闭位置上必须是相同的格式。
从第一个输入文件解析这些位置,并将相同的位置用于其他输入文件。
通常,输入文件来自同一个来源 - 例如PHPUnit - 因此它们的格式是相同的。