Python PyBuilder:未执行单元测试

Python PyBuilder:未执行单元测试,python,python-unittest,pybuilder,Python,Python Unittest,Pybuilder,假设这是我的PyBuilder项目的源目录的布局 (在myProject中为空\uuuuuu init\uuuuuuuuuuuuuy.py): 而UsefulThingTest.py的内容如下: import unittest from myProject.usefulThing import usefulFunction class UsefulThingTest(unittest.TestCase): def test_should_do_useful_things(self):

假设这是我的PyBuilder项目的源目录的布局 (在
myProject
中为空
\uuuuuu init\uuuuuuuuuuuuuy.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不运行这些测试?

事实上,
UsefulThingTest
-类扩展了
unittest.TestCase
不足以让类作为测试运行。保存有
UsefulThingTest
的文件名也必须遵循约定:默认情况下,它必须以
\u tests.py
结尾。例如,重命名:

UsefulThingTest.py

解决了这个问题

引自:

文件必须以
\u tests.py
结尾。这就告诉PyBuilder在发现测试用例时要考虑这个文件。

这可以通过将
unittest\u file\u后缀
属性设置为来更改。

unittests要求将文件(包含测试)命名为: *_tests.py

它还对函数名施加了限制:

import unittest class SampleTests(unittest.TestCase): def test1(self): #function name should be like this : no underscore etc. 导入单元测试 类SampleTests(unittest.TestCase): def测试1(自我): #函数名应该是这样的:没有下划线等。 i、 他们有预定义的测试套件命名约定

useful_thing_tests.py
import unittest class SampleTests(unittest.TestCase): def test1(self): #function name should be like this : no underscore etc.