gpt4 book ai didi

Python 单元测试 : run tests in another module

转载 作者:太空狗 更新时间:2023-10-29 17:26:40 25 4
gpt4 key购买 nike

我想将应用程序的文件放在/Files 文件夹下,而测试单元放在/UnitTests 文件夹下,这样我就可以清楚地将应用程序和测试分开。

为了能够使用与 mainApp.py 相同的模块路由,我在根文件夹中创建了一个 testController.py。

mainApp.py
testController.py
Files
|__init__.py
|Controllers
| blabla.py
| ...
UnitTests
|__init__.py
|test_something.py

因此,如果在 test_something.py 中我想测试/Files/Controllers/blabla.py 中的一个函数,我会尝试以下操作:

import unittest
import Files.Controllers.blabla as blabla


class TestMyUnit(unittest.TestCase):

def test_stupid(self):
self.assertTrue(blabla.some_function())


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


然后从文件 testController.py 中执行以下代码:

import TestUnits.test_something as my_test
my_test.unittest.main()

没有输出失败,但没有执行测试

----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK
[Finished in 0.3s]


我已经尝试过一个没有依赖性的测试,如果作为“ma​​in”运行,但是当从外部调用时,输出相同:

import unittest


def tested_unit():
return True


class TestMyUnit(unittest.TestCase):

def test_stupid(self):
self.assertTrue(tested_unit())


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

问题:如何让它工作?

最佳答案

unittest.main() 方法查看上下文中存在的所有 unittest.TestCase 类。因此,您只需将测试类导入 testController.py 文件并在此文件的上下文中调用 unittest.main()。

所以你的文件 testController.py 应该看起来像这样:

import unittest    
from UnitTests.test_something import *
unittest.main()

关于Python 单元测试 : run tests in another module,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15334042/

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