运行自动发现的 python 单元测试的子集

2024-03-26

简短的问题
在 Python 的单元测试模块中使用自动发现方法时,是否可以在运行时选择要运行的单元测试。

背景
我正在使用 unittest 模块在外部系统上运行系统测试。请参阅下面的示例 sudo-testcase。 unittest 模块允许我创建任意数量的测试用例,我可以使用unittest 的测试运行器运行这些测试用例。我已经使用这个方法大约 6 个月了,持续使用,效果很好very出色地。

此时我想尝试使其更加通用和用户友好。对于我现在运行的所有测试套件,我已经硬编码了每个系统必须运行的测试。这对于未经测试的系统来说很好,但是当测试错误地失败时(用户连接到错误的测试点等......),他们必须重新运行整个测试套件。由于一些完整的套房可能需要长达 20 分钟的时间,这远非理想状态。

我知道可以创建custom可以定义要运行哪些测试的测试套件构建器。我的问题是,有数百个测试用例可以运行,如果测试用例名称发生更改等,维护这将是一场噩梦......

我的希望是使用nose http://readthedocs.org/docs/nose/en/latest/,或者内置的unittest http://docs.python.org/library/unittest.html模块来实现这一点。对于这两个选项来说,发现部分似乎都非常简单,但我的问题是选择要运行的测试用例子集的唯一方法是定义测试用例名称中存在的模式。这意味着我仍然需要对模式列表进行硬编码来定义要运行的测试用例。因此,如果我必须对这个列表进行硬编码,那么使用自动发现的意义是什么(请注意这是反问句)?

我的最终目标是有一种通用的方法来选择在执行期间运行哪些单元测试,以用户可以编辑的复选框或文本字段的形式。理想情况下,解决方案将使用 Python 2.7,并且需要在 Windows、OSX 和 Linux 上运行。

Edit
为了帮助澄清,我不希望该工具生成选项列表或复选框。理想情况下,该工具将返回目录中所有测试的列表,包括完整路径以及测试用例所属的套件(如果有)。有了这个列表,我将构建用户与之交互的复选框或组合框,并将这些测试传递到动态测试套件中运行。

测试用例示例

test_measure_5v_reference 
    1) Connect to DC power supply via GPIB
    2) Set DC voltage to 12.0 V
    3) Connect to a Digital Multimeter via GPIB
    4) Measure / Record the voltage at a given 5V reference test point
    5) Use unittest's assert functions to make sure the value is within tolerance

将测试的每个子集存储在其自己的模块中。正如您所说,通过让用户使用复选框或文本输入来选择模块名称来获取模块名称列表。获得模块名称列表后,您可以构建相应的测试套件,执行类似于以下操作的操作。

testsuite = unittest.TestSuite()
for module in modules:
  testsuite.addTest(unittest.defaultTestLoader.loadTestsFromModule(module))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

运行自动发现的 python 单元测试的子集 的相关文章

随机推荐

  • Java 和 PostgreSQL 之间的“坏记录 MAC”SSL 错误

    我们遇到了 Java 应用程序和 PostgreSQL 8 3 服务器之间随机断开连接的问题 并出现 坏记录 MAC SSL 错误 我们两边都运行 Debian Lenny 在客户端 我们看到 main WRITE TLSv1 Applic
  • 如何获取整个月的天数

    我正在创建全年日历 如何在 Flutter 中获取该月的天数 例如 一月 gt 31 二月 gt 28 29 按年 三月 gt 31 依此类推 Using date1 difference date2 inDays 是不正确的 对于某些日期
  • 从类和 javadoc 生成代码存根

    有人熟悉生成代码存根的工具吗具有有意义的名称来自类和javadoc 真正的问题应该是 我的类没有调试信息和匹配的 javadoc 但我的 IntelliJ IDEA 8 0 1 拜托 没有 IDE 战争 没有考虑 javadoc 并向我显示
  • 可以在单个进程中在 JNI 中创建多个 JVM 吗? [复制]

    这个问题在这里已经有答案了 我有一个在单个进程中运行并允许使用模块的 C 框架 我想添加的一种类型的模块是加载 JAR 然后调用其中特定的预定义函数的模块 根据用户的需要 可以有任意数量的模块同时运行 这就提出了一个问题 每个模块是否可以使
  • GCC NRVO/RVO 警告

    有没有warning 这让我们知道是否NRVO RVO执行与否 在GCC 我找到 fno elide constructors关掉NRVO RVO but NRVO RVO有其发生的条件 有时不发生 有必要知道是否NRVO RVO当额外的复
  • 与多个属性共享枚举声明值

    我想要一个具有多个属性的类 可以用数值保存工作日 summary weekday integer collection weekday integer 我想我可以将整数映射到值使用枚举 http edgeapi rubyonrails or
  • ActiveModel 序列化器:运行时有条件吗?

    我使用rails 5 0 1 和active model serializers 0 10 2 我想以某种方式有条件地序列化has many协会 class Question lt ApplicationRecord has many re
  • 如何创建或生成 .mlpd 文件以在 xamarin profiler 中检查应用程序性能

    你好 Xamarin 团队 我正在 Visual Studio 2017 社区中处理 Xamarin 表单 我想检查 Xamarin Profiler 中的应用程序性能 为此 我需要创建一个 mlpd 来检查 Xamarin Profile
  • 单击链接时使用 jQuery/Javascript 更改下拉选项

    假设我有以下链接和下拉菜单 a href contact Send a mail to mother a a href contact Send a mail to father a a href contact Send a mail t
  • 在 Windows 上非侵入式解锁文件

    有没有办法使用 Python 脚本在 Windows 上解锁文件 该文件被另一个进程独占锁定 我需要一个不终止或中断锁定过程的解决方案 我已经看过了门户锁 http code activestate com recipes 65203 一种
  • 在 Eclipse 中重新启动应用程序

    我正在使用 Eclipse Juno 开发一个独立服务器 不是战争 我将它作为 Java 应用程序从 Eclipse 运行 在进行一些代码更改后 我想停止当前正在运行的服务器并再次启动它 我每天这样做几十次 我目前的做法如下 转到 调试 选
  • 如何创建具有自定义外设和内存映射的 QEMU ARM 机器?

    我正在为 Cortex M3 cpu 编写代码 并且正在使用以下命令执行单元测试qemu arm二进制 现在一切都很好 但我想知道我是否能够使用测试整个系统qemu system arm 我的意思是 我想为 qemu 编写自定义 机器 我将
  • 使用RTL布局时如何通过命中测试获取树视图项?

    描述 在从右到左阅读模式 RTL 下有树视图 如何在仅知道单击坐标的情况下获取被单击的节点 这是一个插入类 它使树视图使用 RTL 显示 并包含一个单击处理程序 您可以在其中看到问题 unit Unit1 interface uses Wi
  • 连接充电器时 Android 上的自动开机

    我正在开发一个 Android 应用程序 需要不断地保持该应用程序始终运行 在手机始终连接到电源插座的情况下 如果手机电池耗尽 是否有可能在无需用户干预的情况下自动启动应用程序 即自动打开手机电源 无需按任何电源按钮 并在连接充电器后启动
  • ValidateRequest 错误还是 SQL Server Bug?

    我正在读这个article http software security sans org blog 2011 07 22 bypassing validaterequest in asp net 它说 该字符用值 uff1c 表示 如果将
  • MSGBOX 在 WSH/VBS 中的位置

    这是我的下一个问题 我希望有人可以帮助我 是否可以在 wsh vbs 中放置 msgbox 替代文本 http www 4freeimagehost com uploads a9b04cde0527 jpg http www 4freeim
  • VBA 使用架构文件提取数据

    我下面有这个代码 Option Explicit Sub MadMule2 Dim IE As InternetExplorer Dim el Dim els Dim colDocLinks As New Collection Dim Ti
  • FastAPI 中的单元测试

    我有一个使用 FastAPI 开发的后端应用程序 使用 SQLModel SQLAlchemy 和 Pydantic 并连接到 Postgres 数据库 我有集成测试来测试我的端点是否可以与暂存 PG DB 正常工作 但现在我必须编写单元测
  • 使用波形符 ~ 扩展对 HOME 目录进行测试时得到负面结果

    我收到一个奇怪的错误 似乎无法弄清楚为什么 特别是因为它在一个地方有效 但在另一种情况下无效 我有他的代码来检查这些目录是否存在 并且带有 的 HOME 目录在此代码片段中失败 if d valueToTest then echo Fail
  • 运行自动发现的 python 单元测试的子集

    简短的问题在 Python 的单元测试模块中使用自动发现方法时 是否可以在运行时选择要运行的单元测试 背景我正在使用 unittest 模块在外部系统上运行系统测试 请参阅下面的示例 sudo testcase unittest 模块允许我