单元通过从Python中的另一个文件调用文件来测试文件

时间:2014-02-03 11:38:00

标签: python unit-testing python-unittest

我是unnitest模块的新手。我有一个包含unittest的文件。该文件类似于......

File1.py

class ABC (unittest.TestCase):
    def setUp(self):
        # Do some work here

    def test_123(self, a,b,c):
        # Do some work here

if __name__ == "__main__":
unittest.main()

* 现在我通过将值传递给函数“test_123”来从另一个文件调用此文件。* 但是python显示以下错误。请有人帮忙!

Traceback (most recent call last):
File "caller_file.py", line 20, in <module>
r = file1.ABC()
File "/usr/lib/python2.7/unittest/case.py", line 191, in __init__
(self.__class__, methodName))
ValueError: no such test method in <class 'file1.ABC'>: runTest

2 个答案:

答案 0 :(得分:0)

您可以像这样运行file1.ABC测试用例:

import unittest
import file1

suite = unittest.TestLoader().loadTestsFromTestCase(file1.ABC)
unittest.TextTestRunner(verbosity=2).run(suite)

此外,您需要将self参数添加到setUptest_123方法,self应该是唯一的参数。

答案 1 :(得分:0)

我的单元测试遇到了类似的问题,因为缺少模块搜索路径中的条目。

我通过创建

解决了这个问题
my_env = os.environ.copy()
        if not 'PYTHONPATH' in my_env:
            my_env['PYTHONPATH'] = ''

        my_env['PYTHONPATH'] += ';' + ';'.join(
                                    [os.path.abspath('.'),
                                    os.path.abspath('..'),
                                    os.path.abspath('..\\..')])

然后调用文件

_ = subprocess.check_output(filepath, shell=True, env=my_env)

我刚刚添加了当前路径环境,因为调用文件位于相同的目录中。也许你必须调整它。