我有一个Python项目,其中包含一些已经实现的测试,我想开始对它们进行基准测试,以便我可以比较代码,服务器等的性能.以类似于Nose的方式定位文件没有问题,因为无论如何我在所有测试文件的名称中都有"测试".但是,我在尝试动态执行这些测试时遇到了一些麻烦.
到目前为止,我能够运行一个脚本,它将目录路径作为参数,并返回一个文件路径列表,如下所示:
def getTestFiles(directory):
fileList = []
print "Searching for 'test' in " + directory
if not os.path.isdir(os.path.dirname(directory)):
# throw error
raise InputError(directory, "Not a valid directory")
else:
for root, dirs, files in os.walk(directory):
#print files
for f in files:
if "test" in f and f.endswith(".py"):
fileList.append(os.path.join(root, f))
return fileList
# returns a list like this:
# [ 'C:/Users/myName/Desktop/example1_test.py',
# 'C:/Users/myName/Desktop/example2_test.py',
# 'C:/Users/myName/Desktop/folder1/example3_test.py',
# 'C:/Users/myName/Desktop/folder2/example4_test.py'... ]
Run Code Online (Sandbox Code Playgroud)
问题是这些文件可能有不同的语法,我正试图弄清楚如何处理.例如:
TestExampleOne:
import dummy1
import dummy2
import dummy3
class TestExampleOne(unittest.TestCase):
@classmethod
def setUpClass(cls):
# …Run Code Online (Sandbox Code Playgroud)