嗯 我刚刚换了 3.6,好像确实是没有差别,改成了以下的代码,
先找到匹配 test_的 py 文件,然后再找到父目录用 discover 方法。
import os
import os.path
import re
import unittest
casepaths = []
class CaseStrategy:
def init(self):
self.casepaths = []
def createsuite(self):
for parent, dirnames, filenames in os.walk('..'):
for filename in filenames:
# print "parent is:" + parent
# print "filename is:" + filename
path = os.path.join(parent, filename)
# 正则判断是否为测试用例
match = re.match('test_', filename)
if match:
print (u"获取测试用例目录:%s" % parent)
casepaths.append(parent)
break
testunit = unittest.TestSuite()
# discover 方法定义
for casepath in casepaths:
discover = unittest.defaultTestLoader.discover(
casepath,
pattern='test_*.py'
)
for test_suite in discover:
for test_case in test_suite:
testunit.addTest(test_case)
print (testunit)
return testunit
if name == 'main':
cs = CaseStrategy()
cs.createsuite()
谢谢你的回复,今天我看了,是测试用例的列表没有取到,所以直接跳过测试用例执行了。
请问你的 Python 版本是多少呢,我现在用的 3.3.5。
直接运行 CaseStrategy 的时候报了这样的错,没有找到解决的办法。raise ImportError('Start directory is not importable: %r' % start_dir)
ImportError: Start directory is not importable ................\TestCase' 不知道和 Python 的版本有没有关系。
下载 Demo 工程来运行,但是为什么运行不起呢。