假设这是我的PyBuilder项目的源目录的布局
(省略__init__.py
中的空myProject
):
src
├── main
│ └── python
│ └── myProject
│ └── usefulThing.py
└── unittest
└── python
└── UsefulThingTest.py
,UsefulThingTest.py
的内容如下:
import unittest
from myProject.usefulThing import usefulFunction
class UsefulThingTest(unittest.TestCase):
def test_should_do_useful_things(self):
self.assertEqual(usefulFunction(42), 1764)
当我运行pyb
时,我收到以下警告,并且没有执行任何测试:
[WARN] No unit tests executed.
[INFO] All unit tests passed.
为什么PyBuilder不运行这些测试?
答案 0 :(得分:1)
UsefulThingTest
- 类扩展unittest.TestCase
的事实不足以使类作为测试运行。保存UsefulThingTest
的文件的名称也必须遵循约定:默认情况下,它必须以_tests.py
结尾。例如,重命名:
UsefulThingTest.py
到
useful_thing_tests.py
解决了这个问题。
来自Tutorial:
的引用该文件必须以
_tests.py
结尾。这告诉PyBuilder在发现测试用例时要考虑这个文件。
可以通过将unittest_file_suffix
属性设置为described here来更改此内容。
答案 1 :(得分:0)
unittests需要将文件(包含测试)命名为: * _tests.py
它还对函数名称施加了限制:
import unittest class SampleTests(unittest.TestCase): def test1(self): #function name should be like this : no underscore etc.
i.e他们具有针对测试套件的预定义命名约定