python - 鼻子测试将导入的方法标记为非测试用例
问题描述
nosetest 使用启发式方法来识别哪些函数是测试用例。当导入一个名称不明确的方法进行测试时,这可能会变得很尴尬,例如:
富/富.py
def get_test_case(text):
return "xyz"
(注意目录 foo 被排除在外,这不是关于将 foo/foo.py 识别为测试用例的鼻子测试)
测试/test_foo.py
import unittest
# causes TypeError: get_test_case() missing 1 required positional argument: 'text'
from foo.foo import get_test_case
class TestTestCasesReader(unittest.TestCase):
def test_get_test_case(self):
self.assertEquals(get_test_case("fooBar"), ...)
我知道我可以在测试中执行此解决方法:
import unittest
import foo.foo
# ...
self.assertEquals(foo.get_test_case("fooBar"), ...)
但感觉应该有更好的方法来告诉nosetest 取消该get_test_case
功能。
显然,我也可以重命名get_test_case
以将其从鼻子测试中隐藏起来,但这不是我正在寻找的答案。
解决方案
这是一个相关的问题:让鼻子忽略名称中带有“测试”的函数
问题中提出了两种解决方案
- 在定义
get_test_case
. _
from nose.tools import nottest
@nottest
def get_test_case(text):
return "xyz"
- 在测试代码中使用nottest
import unittest
from nose.tools import nottest
from foo.foo import get_test_case
get_test_case = nottest(get_test_case)
class TestTestCasesReader(unittest.TestCase):
def test_get_test_case(self):
self.assertEquals(get_test_case("fooBar"), ...)
推荐阅读
- java - 如何使用上面的标签创建一个新的 TextField
- html - 具有增加减少功能的按钮一个带有数量限制的html
- python - Python - 想出一个 5 ^ 5 的“连接图”?
- javascript - 如果没有子列表,如何将父列表数据扩展值设为“真”?
- sql - 简单的嵌套视图是否有效(前提是不包含多余的表?)
- iis - IIS 服务器 HTML 文件回退
- javascript - 连接到 Discord websocket 时未收到“就绪”事件
- css - 第 n 个选择器无法针对 WordPress 管理员配置文件页面中的子项
- javascript - 单击后 SemanticUI 按钮仍处于活动状态
- selectpdf - SelectPdf Html到PDF图像不出现