Python 鼻测试将导入的方法标记为非测试用例
NoTest使用启发式来识别哪些函数是测试用例。在导入名称不明确的方法进行测试时,这可能会变得很尴尬,例如: foo/foo.pyPython 鼻测试将导入的方法标记为非测试用例,python,unit-testing,nose,Python,Unit Testing,Nose,NoTest使用启发式来识别哪些函数是测试用例。在导入名称不明确的方法进行测试时,这可能会变得很尴尬,例如: foo/foo.py def get_test_case(text): return "xyz" (注意目录foo被排除在外,这与将foo/foo.py标识为testcase的nosetest无关) 测试/测试_foo.py import unittest # causes TypeError: get_test_case() missing 1 required posit
def get_test_case(text):
return "xyz"
(注意目录foo被排除在外,这与将foo/foo.py标识为testcase的nosetest无关)
测试/测试_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\u test\u case
功能
显然,我也可以重命名
get\u test\u case
来隐藏它,但这不是我想要的答案。这是一个相关的问题:
该问题提出了两种解决办法
get\u test\u用例的模块中使用decorator
从nose.tools导入nottest
@不测试
def get_测试案例(文本):
返回“xyz”
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"), ...)