PyBuilder:没有执行单元测试

时间:2018-04-11 02:43:32

标签: python python-unittest pybuilder

假设这是我的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不运行这些测试?

2 个答案:

答案 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他们具有针对测试套件的预定义命名约定