在我目前正在从事的项目中,我的同事中很少有人使用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 run -a -m pytest -v -m unittests的输出,而忽略了之前运行的单元测试。
我可以知道如何获得上述场景中所有单元测试的单个报告吗?
发布于 2020-08-03 20:41:30
https://stackoverflow.com/questions/63225699
复制相似问题