使用unittest和pytest包编写的测试的单元测试覆盖率报告



在我目前正在进行的项目中,我的同事中很少有人使用unittest包编写单元测试,有些人使用pytest包。当我在CI管道中运行单元测试时,我会调用所有的单元测试。但是,我们现在还需要获得完整的代码覆盖率包。所以,我已经通过添加覆盖范围更新了单元测试调用脚本(请参阅下面的脚本片段(。但是,我看到当我在下面的脚本中运行时,我得到的是coverage run -a -m pytest -v -m unittests的覆盖率输出(下面的第7行(,而不是之前运行的测试。但是,如果我去掉coverage run -a -m pytest -v -m unittests行(下面的第7行(,我就会得到以前单元测试的输出。

#!/bin/bash
set -xe
coverage run -m unittest test_a.py
coverage run -a -m unittest test_b.py
coverage run -a -m unittest test_c.py
...
cd process/tests/
coverage run -a -m pytest -v -m unittests
coverage report -m --omit=*/venv/*

coverage只报告coverage run -a -m pytest -v -m unittests的输出,忽略之前运行的单元测试。

我能知道在上面的场景中,我如何获得所有单元测试的单个报告吗?

使用组合命令解决问题:

https://coverage.readthedocs.io/en/latest/cmd.html#cmd-联合

最新更新