我在venv
jenkins 的工作中安装了我们的一些项目包。安装后,该作业从单独的存储库中提取一些单元测试并针对已安装的包运行它们。
我的问题coverage
仅涉及测试脚本,但不涉及已安装的软件包。
这是文件夹结构:
JenkinsWorkspace
|_Venv
|_MyProject
|_trunk
|_Python
|_Package1
|_Package2
|_temp_tests
|_test_suite1.py
|_...
因此,为了进一步解释,我遍历包 in MyProject
,检查每个包的测试到temp_tests
,cd
intemp_tests
并调用nose2 -t ..\..\..\Venv\Lib\site-packages
我认为-t
参数会设置顶级目录,并使用安装在那里的东西。是的,测试成功运行。但coverage
仅涵盖测试套件本身。有没有办法告诉鼻子为已安装的包做覆盖?
为了完整起见,我的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