仅禁用自动执行的Python单元测试吗?

问题描述 投票:1回答:1

装饰器@unittest.SkipTest可防止在测试类中运行单元测试时自动执行单元测试。不幸的是,这也使得PyCharm中的单个执行(通过右键单击该函数,然后为该测试方法选择运行/调试)失败,并显示TypeError: don't know how to make test from: <function .... at 0x7fbc8e1234c0>有没有办法从自动(批量)执行中禁用单元测试在运行完整的测试类时,如何将其手动执行(最好在PyCharm中执行),以便可以运行它而无需在测试文件中进行任何更改?我想@unittest.skipUnless(condition, reason)可能会派上用场,但无法提出仅在测试通过后才能满足的条件手动发射。任何建议表示赞赏!

python pycharm python-unittest
1个回答
2
投票

您是否尝试过包含通过CI / CD运行时设置的参数?您可以将默认值设置为false,然后CI / CD将其设置为true。这将为您提供所需的条件。

据我所知,区分CI / CD运行和IDE运行的唯一方法是通过必须设置的某些中间参数。

编辑:尝试在PyCharm中为该特定测试设置自定义构建配置。您可以让该构建配置将参数传递给测试套件。届时,您将有适当的条件,使您在使用命令行与PyCharm的集成测试运行程序运行测试时,不跳过此测试。

为简单起见,您希望参数的默认值是跳过,并且仅通过在PyCharm中的特殊构建配置中将True传递给该参数来将布尔值设置为不跳过。

参见:https://www.jetbrains.com/help/idea/build-configuration.html

© www.soinside.com 2019 - 2024. All rights reserved.