Open deepin-bot[bot] opened 4 days ago
Integration Test Info
zope.testrunner
简介zope.testrunner
是一个 Python 包,提供一个灵活且功能丰富的测试运行器,广泛用于 Zope 和其他相关项目中。它支持单元测试和集成测试,基于 Python 的标准测试框架(如 unittest
和 doctest
),并添加了一些高级特性,如分层测试、覆盖报告、调试支持等。
支持的测试框架:
unittest
和 doctest
。高级功能:
丰富的命令行选项:
灵活的配置:
test.cfg
等配置文件调整运行参数。使用 pip
安装 zope.testrunner
:
pip install zope.testrunner
如果需要在特定项目中运行,建议在虚拟环境中安装:
python -m venv venv
source venv/bin/activate
pip install zope.testrunner
zope.testrunner
提供了一个命令行工具,可以直接运行:
zope-testrunner --test-path <路径>
示例:
zope-testrunner --test-path src/
--test-path
指定测试所在的路径。指定特定模块:
zope-testrunner --module=my_module.tests
运行 my_module.tests
中的测试用例。
显示详细信息:
zope-testrunner --verbose
打印详细的测试信息。
启用调试模式:
zope-testrunner --pdb
测试失败时进入调试器。
捕获日志:
zope-testrunner --capture
捕获测试期间的标准输出和错误输出。
并行测试:
zope-testrunner --parallel=4
使用 4 个线程并行运行测试。
运行特定标签的测试:
zope-testrunner --layer=my_layer
test.cfg
配置文件可以通过配置文件简化测试参数设置。在项目根目录创建一个 test.cfg
:
[zope.testrunner]
test-path = src/
module = my_module.tests
parallel = 4
verbose = true
然后直接运行:
zope-testrunner
unittest
测试zope.testrunner
可以运行标准的 unittest
测试:
import unittest
class MyTestCase(unittest.TestCase):
def test_addition(self):
self.assertEqual(1 + 1, 2)
if __name__ == "__main__":
unittest.main()
将测试文件命名为 test_*.py
,zope.testrunner
会自动发现。
doctest
测试支持在文档字符串中编写测试:
def add(a, b):
"""
Adds two numbers together.
>>> add(2, 3)
5
>>> add(-1, 1)
0
"""
return a + b
运行 zope.testrunner
,会自动执行文档测试。
Zope 项目通常使用分层测试。以下是定义测试层的示例:
from zope.testrunner.layer import Layer
class MyLayer(Layer):
@classmethod
def setUp(cls):
print("Setting up the test layer...")
@classmethod
def tearDown(cls):
print("Tearing down the test layer...")
然后将测试分配到该层:
import unittest
class MyTestCase(unittest.TestCase):
layer = MyLayer
def test_example(self):
self.assertTrue(True)
运行时可以指定 --layer
参数以选择特定层的测试。
添加 --pdb
参数,在测试失败时直接进入调试器:
zope-testrunner --pdb
使用 --log
捕获日志:
zope-testrunner --log=test.log
通过模块路径运行特定测试:
zope-testrunner --module=my_module.tests --test-pattern=test_addition
zope.testrunner
可以方便地集成到 CI/CD 流程中。例如,在 GitHub Actions 中:
name: Python Tests
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.9'
- name: Install dependencies
run: |
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
- name: Run tests
run: |
source venv/bin/activate
zope-testrunner --test-path src/ --verbose
test_*.py
命名。--test-path
或模块路径。--nocapture
。zope-testrunner --parallel=1
zope.testrunner
是一个强大且灵活的测试运行工具,特别适合大型项目和复杂的测试需求。通过其丰富的选项和分层机制,能够有效地组织和运行测试,支持单元测试、集成测试和文档测试等多种场景。如果有其他问题,欢迎随时提问!
IntegrationProjector Notify the author @deepin: Integrated issue updated
IntegrationProjector Bot Deepin Testing Integration Project Manager Info Link to https://github.com/deepin-community/Repository-Integration/pull/2255
@kobe337 请开展集成验证。
【环境】: 镜像:Deepin OS-25-20241107064136-1_x86_64 内核:Linux deepin-PC 6.12.0-amd64-desktop-rolling #23.01.01.10 SMP PREEMPT_DYNAMIC Tue Nov 19 21:11:07 CST 2024 x86_64 GNU/Linux
【结论】: 测试通过,暂无严重问题及影响, 安装校验,版本核对,基本命令使用,测试脚本运行,验证通过,请研发同事确认,是否推送内测。
Package information | 软件包信息
Package repository address | 软件包仓库地址
Changelog | 更新信息
zope.testrunner (6.6-1) unstable; urgency=medium