这是我的头几行代码,但我已经编写了20年,所以我很快就想让单元测试运行起来。
我正在使用
这是我所在文件夹的内容。
Directory: C:DATAGitPymy_first_code
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 19/01/2019 21:42 __pycache__
-a---- 19/01/2019 21:35 289 messing.py
-a---- 19/01/2019 21:42 204 test_messing.py
-a---- 19/01/2019 22:07 0 __init__.py
据我所知,我不在"venv"中。
这是test_messing.py
的内容。
import unittest
class Test_Math(unittest.TestCase):
def math_multiply__when__2_times_2__then__equals_4(self):
self.assertEqual(2 * 2, 4)
if __name__ == '__main__':
unittest.main()
__init__.py
为空,我添加了它以查看是否有帮助,messing.py
包含8行书中的一些代码。
当我尝试在VS代码中发现测试时,我得到了。
未发现测试,请检查测试的配置设置。来源:PYTHON(扩展)
更有趣的是,通过Python命令行运行测试发现如下所示。
PS C:DATAGitPymy_first_code> python -m unittest discover -v -s . -p test_*.py
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
如documentation所述,对于unittest
模块,您的测试方法名称需要以test
开头。
测试是使用名称以字母test开头的方法定义的。此命名约定通知测试运行者哪些方法表示测试。
例如
class TestMath(unittest.TestCase):
def test_multiply(self):
self.assertEqual(2 * 2, 4)
def test_multiply_negative(self):
self.assertEqual(-2 * -2, 4)
self.assertEqual(2 * -2, -4)
# etc...
请注意,这些测试都不会真正测试messing.py
功能。为此,您需要import messing
对其调用函数,并断言这些函数返回的值。
最后,您应该遵循几个惯例:
这篇关于为什么我在VS代码中的Python测试中得不到测试?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持吉威生活!
[英文标题]Why am I getting "No tests discovered" with Python tests in VS Code?
声明:本媒体部分图片、文章来源于网络,版权归原作者所有,如有侵权,请联系QQ:330946442删除。