gpt4 book ai didi

python-3.x - 运行nose2 覆盖已安装的包

转载 作者:行者123 更新时间:2023-12-04 00:27:29 26 4
gpt4 key购买 nike

我在 venv 中安装了一些我们的项目包通过 Jenkins 的工作。安装后,该作业从单独的存储库中提取一些单元测试,并针对已安装的包运行它们。

我的问题是 coverage仅涵盖测试脚本,而不涵盖已安装的软件包。

这是文件夹结构:

JenkinsWorkspace
|_Venv
|_MyProject
|_trunk
|_Python
|_Package1
|_Package2
|_temp_tests
|_test_suite1.py
|_...

所以为了进一步解释,我遍历了 MyProject 中的包, 将每个测试的测试 checkin temp_tests , cdtemp_tests并调用 nose2 -t ..\..\..\Venv\Lib\site-packages
我以为 -t param 将设置顶级目录,并使用安装在那里的东西。是的,测试成功运行。但是 coverage仅涵盖测试套件本身。
有没有办法告诉 Nose 对已安装的软件包进行覆盖?

为了完整起见,我的 unittest.cfg :
[coverage]
coverage-report = term-missing
always-on = True
coverage-config = .coveragerc

[junit-xml]
always-on = True
keep_restricted = False
path = nose2-junit.xml
test_fullname = False

.coveragerc :
# .coveragerc
[run]
branch = True
[report]
show_missing = True
omit =
build/*
tests/*
setup.py
*/__init__.py

最佳答案

我通过使用 coverage 解决了我的问题测试后打包。

我做了:

nose2 --plugin nose2.plugins.junitxml -s tests -c unittest.cfg
python -m coverage xml

文件夹 tests所在的位置包含我的测试。

我的 unittest.cfg被设定为:
[coverage]
coverage-report = term-missing
always-on = True
coverage-config = .coveragerc

[junit-xml]
always-on = True
keep_restricted = False
path = nose2-junit.xml
test_fullname = False

而在 .coveragerc我排除了所有不需要的(系统)包:
# .coveragerc
[run]
branch = True
[report]
show_missing = True
omit =
build/*
tests/*
setup.py
*/__init__.py
*/nose/*
*/pkg_resources/*
*/six.py
*/nose2/*
*/coverage/*
*/cov_core.py

关于python-3.x - 运行nose2 覆盖已安装的包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45861755/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com