2

假设这是我的 PyBuilder 项目的源目录的布局(省略为空__init__.pymyProject

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 不运行这些测试?

4

2 回答 2

2

UsefulThingTest-class 扩展的事实unittest.TestCase不足以将该类作为测试运行。保存文件的名称UsefulThingTest也必须遵循约定:默认情况下,它必须以_tests.py. 例如,重命名:

UsefulThingTest.py

useful_thing_tests.py

解决问题。

引用教程

该文件必须以_tests.py. 这告诉 PyBuilder 在发现测试用例时考虑这个文件。

这可以通过设置这里描述unittest_file_suffix的属性来改变。

于 2018-04-11T02:43:32.267 回答
0

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

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

导入单元测试
类 SampleTests(unittest.TestCase):
      def test1(自我):
          #function 名称应该是这样的:没有下划线等。

即他们为测试套件预定义了命名约定

于 2019-06-24T08:07:22.300 回答