PyBuilder:没有执行单元测试
PyBuilder: No unit tests executed
假设这是我的PyBuilder项目源码目录的布局
(省略myProject
中的空__init__.py
):
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 运行 没有那些测试?
UsefulThingTest
-class 扩展 unittest.TestCase
的事实不足以使 class 成为 运行 作为测试。保存UsefulThingTest
的文件的名称也必须遵循一个约定:默认情况下,它必须以_tests.py
结尾。例如重命名:
UsefulThingTest.py
至
useful_thing_tests.py
解决了问题。
引自Tutorial:
The file must end with _tests.py
. This tells PyBuilder to consider this file when discovering test cases.
这可以通过将 unittest_file_suffix
属性 设置为 described here 来改变。
unittests 要求文件(包含测试)命名为:
*_tests.py
并且对函数名也做了限制:
import unittest
class SampleTests(unittest.TestCase):
def test1(self):
#function name should be like this : no underscore etc.
即他们有测试套件的预定义命名约定
假设这是我的PyBuilder项目源码目录的布局
(省略myProject
中的空__init__.py
):
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 运行 没有那些测试?
UsefulThingTest
-class 扩展 unittest.TestCase
的事实不足以使 class 成为 运行 作为测试。保存UsefulThingTest
的文件的名称也必须遵循一个约定:默认情况下,它必须以_tests.py
结尾。例如重命名:
UsefulThingTest.py
至
useful_thing_tests.py
解决了问题。
引自Tutorial:
The file must end with
_tests.py
. This tells PyBuilder to consider this file when discovering test cases.
这可以通过将 unittest_file_suffix
属性 设置为 described here 来改变。
unittests 要求文件(包含测试)命名为: *_tests.py
并且对函数名也做了限制:
import unittest class SampleTests(unittest.TestCase): def test1(self): #function name should be like this : no underscore etc.
即他们有测试套件的预定义命名约定