gpt4 book ai didi

Python nosetests 跳过某些测试

转载 作者:太空狗 更新时间:2023-10-29 17:28:54 27 4
gpt4 key购买 nike

我正在为用 python 编写的 Web 应用程序进行测试。

假设我的 test_login.py 模块中有 5 个测试。

每个测试都是一个类。

通常有一个扩展 TestFlow 类的基础测试,这是我们预定义的测试类。

然后此模块中的其他测试扩展了该基础测试。

例如:

#The base test 

TestLogin(TestFlow):
#do login_test_stuff_here

#Another test in the same module

TestAccountDetails(TestLogin)
#do account_details_test_stuff_here

...

它实际上非常方便,因为为了测试例如 AccountDetails 用户必须登录,所以我可以继承 TestLogin 测试,我准备以登录用户身份测试其他功能。

所有测试都在 Project/project/tests 文件夹中。

我们使用带有选项 --with-pylons 的 nosetests 来运行测试。

我的问题是是否有办法将某些 TestClass 标记为“不要测试这个”。

因为我不想浪费时间直接执行这些“基础测试”,因为它们将由继承自它们的其他测试执行。

这些测试可能会有音调,我想尽可能地节省每一秒。

我已经找到类似 Skip、SkipTest 或 @nottest 的东西,但这些只适用于 ceratin TestClass 中的 test_methods,所以我认为它不会在这里工作,如果我有每个测试用例的单个类。

最佳答案

形成 nosetests 它可以通过指定属性来完成,如下所示 http://nose.readthedocs.org/en/latest/plugins/attrib.html

Oftentimes when testing you will want to select tests based on criteria rather than simply by filename. For example, you might want to run all tests except for the slow ones. You can do this with the Attribute selector plugin by setting attributes on your test methods. Here is an example:

def test_big_download():
import urllib
# commence slowness...

test_big_download.slow = 1

Once you’ve assigned an attribute slow = 1 you can exclude that test and all other tests having the slow attribute by running

$ nosetests -a '!slow'

关于Python nosetests 跳过某些测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12006400/

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