新手区 unittest 使用 discover 加载用例,运行结果为空

qxk7825 · 发布于 2017年12月04日 · 最后由 Donly 回复于 2017年12月06日 · 138 次阅读

我的代码如下图所示:

import unittest,os

case_path=os.path.join(os.getcwd(),"test_login")
suite=unittest.defaultTestLoader.discover(case_path,pattern="test_*.py")
print(suite)
if __name__=='__main__':
    runner=unittest.TextTestRunner()
    runner.run(suite)
    #unittest.main(defaultTest='suite',verbosity=2)

运行结果如下:

Launching unittests with arguments python -m unittest E:/Testcmmcar-2.0/src/script/login/testrunner.py in E:\Testcmmcar-2.0\src\script\login


Ran 0 tests in 0.000s

OK
<unittest.suite.TestSuite tests=[<unittest.suite.TestSuite tests=[<unittest.suite.TestSuite tests=[<test_login_failure.test_login_failure testMethod=test_no_authority>, <test_login_failure.test_login_failure testMethod=test_password_error>, <test_login_failure.test_login_failure testMethod=test_password_null>, <test_login_failure.test_login_failure testMethod=test_username_error>, <test_login_failure.test_login_failure testMethod=test_username_null>]>]>, <unittest.suite.TestSuite tests=[<unittest.suite.TestSuite tests=[<test_login_success.test_login_success testMethod=test_login>]>]>, <unittest.suite.TestSuite tests=[<unittest.suite.TestSuite tests=[<test_logout.test_logout testMethod=test_logout>]>]>]>

Process finished with exit code 0
Empty test suite.

输出suite,不是已经证明我的测试套件中是有用例的吗!为什么运行结果显示为空呢?

共收到 8 条回复
02b8b9
qxk7825 · #1 · 2017年12月05日 作者

我将下面的语句注释掉

#if __name__=='__main__':

运行结果就变成这样了:

test1202没有登陆权限
test1113此用户登陆密码输入错误
test1113此用户没有输入登陆密码
test111此登录名错误
登录名为空
登陆成功测试用例,测试数据共3组
此元素存在
test1113登陆成功并退出
此元素存在
test1201登陆成功并退出
此元素存在
test1203登陆成功并退出
此元素存在
成功退出
.......
.......
----------------------------------------------------------------------
Ran 7 tests in 234.659s

OK


Ran 0 tests in 0.000s

OK

Process finished with exit code 0
Empty test suite.

还尝试了网上说的命名错误,但是并没有影响
不明白是为了什么

4389

if name == 'test_login':
试试呢?

02b8b9
qxk7825 · #3 · 2017年12月05日 作者
4389jamesparagon 回复

不行啊

4389

os.getcwd()是哪里?估计设置的path有问题,那下面没有test*.py的文件

02b8b9
qxk7825 · #5 · 2017年12月05日 作者
4389jamesparagon 回复

路径输出是:E:\Testcmmcar-2.0\src\script\login\test_login

应该是没问题的

D99fd3

name打印出来看看是什么,就知道了。不过这里的确没有必要存在这条判断语句。

02b8b9
qxk7825 · #7 · 2017年12月06日 作者
D99fd3Donly 回复

打出来是test_login.testrunner
对于运行结果没得影响

D99fd3
02b8b9qxk7825 回复

这只是一个打印语句,对结果当然没影响。。。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册