Raf*_*aim 15 python unit-testing python-2.7
什么正是我需要做的,使Python的unittest工作?我检查了官方文档,SO问题,甚至尝试使用nose,但到目前为止没有任何工作.我做错了什么?
bash:~/path/to/project/src/tests$ ls -l
total 8
-rw-r--r-- 1 myuser myuser 342 Out 11 11:51 echo_test.py
-rw-r--r-- 1 myuser myuser 71 Out 11 11:28 __init__.py
bash:~/path/to/project/src/tests$ python -m unittest -v echo_test
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
bash:~/path/to/project/src/tests$ python -m unittest discover
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
bash:~/path/to/project/src/tests$ cat echo_test.py
import unittest
class EchoTest(unittest.TestCase):
def fooTest(self):
self.assertTrue(1==1)
def barTest(self):
self.assertTrue(1==2)
#suite = unittest.TestLoader().loadTestsFromTestCase(TestEcho)
#unittest.TextTestRunner(verbosity=2).run(suite)
if __name__ == '__main__':
unittest.main()
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,测试只是没有运行,我不知道为什么(因为我不是python程序员).仅供参考,我使用的__init__.py是python 2.7,它是一个空文件.有什么想法吗?
Chr*_*ley 29
您需要将方法重命名为以"test"开头.
如http://docs.python.org/library/unittest.html所示:
通过继承unittest.TestCase创建一个测试用例.使用名称以字母test开头的方法定义三个单独的测试.此命名约定通知测试运行器哪些方法代表测试.
Nuc*_*eon 18
我想提一下,你不能运行python单元测试,好像它是一个可执行的python文件.例如,这是我的问题:
python -m unittest ./TestMyPythonModule.py
... (stack trace) ...
ValueError: Empty module name
Run Code Online (Sandbox Code Playgroud)
它失败.
但是,这有效:
python -m unittest TestMyPythonModule
Run Code Online (Sandbox Code Playgroud)
一开始很容易忽视.
| 归档时间: |
|
| 查看次数: |
14196 次 |
| 最近记录: |