【发布时间】:2017-01-19 16:28:05
【问题描述】:
我在运行nosetests 时遇到一个奇怪的错误:
======================================================================
ERROR: Extract test data from tarball.
----------------------------------------------------------------------
TypeError: extract_test_data() missing 1 required positional argument: 'calling_file'
有问题的代码分为两个文件:
测试/core.py
class CoreTestCase(unittest.TestCase):
@classmethod
def extract_test_data(cls, calling_file, base='data', name_only=False):
"""Extract test data from tarball.
...
"""
...
测试/.../test_this.py
class TestThis(core.CoreTestCase):
"""Run some tests."""
@classmethod
def setUpClass(cls):
cls.TESTDAT_DIR = cls.extract_test_data(__file__)
导入等工作正常,unittest 没有任何问题。但由于某种原因,nose 正在破坏通话。
我已经尝试了以下所有方法:
cls.TESTDAT_DIR = cls.extract_test_data(calling_file=__file__)
cls.TESTDAT_DIR = cls.extract_test_data(cls,__file__)
cls.TESTDAT_DIR = cls.extract_test_data(cls, calling_file=__file__)
但我仍然得到一个奇怪的分类错误:
TypeError: extract_test_data() got multiple values for argument 'calling_file'
AttributeError: type object 'TestThis' has no attribute 'TESTDAT_DIR'
【问题讨论】:
-
尝试将
extract_test_data重命名为不包含test的名称,例如extract_tst_data。默认情况下,nosetests 会查找其中包含单词test的任何函数/方法,并将它们视为测试。
标签: python unit-testing python-3.5 nose