我的目录结构:
r/
|___init__.py
|
|_d1/
| |___init__.py
| |_s1.py
|
|_d2/
|___init__.py
|_test_s1.py
s1.py的内容:
def a():
return 1
test_s1.py的内容:
from d1.s1 import a
from unittest import TestCase
class TestA(TestCase):
def test_value(self):
self.assertEqual(a(), 1)
print(a() * 10)
我导航到目录/r
并执行python3 d2/test_s1.py
。我收到错误ImportError: No module named 'd1'
。如何执行脚本test_s1.py
?
在我执行python3 -m unittest discover
的同时,单位测试运行得很好,打印出10(即a()* 10)。
答案 0 :(得分:0)
如果要在模块 test_s1 中显式运行测试,则可以指定模块或脚本的完整路径。
max(max(dp)) == max([1, 2, 1, 1])
或
python3 -m unittest d2.test_s1
正如您提到的,python3 -m unittest d2/test_s1.py
将自动检测并运行目录结构中的所有测试模块。
请注意,如果“test_s1.py”在末尾有 python3 -m unittest discover
则不会调用以下代码块,因为在这种情况下正在调用 unittest 的 main 和 name 的值将是“d2.test_s1”。