我正在使用 Python 和 Selenium Webdriver。我有一组测试用例封装在 testSuite 中,我希望它们能够并行运行,无论它们的测试用例配置如何(其中一些将在本地运行,其中一些将通过 Saucelabs 运行)。
我遇到过this page 。这应该是一个 killer ,但它无法在我的设备上正确运行。我尝试运行代码,安装了twisted.python(脚本的先决条件)、zope-interface(twisted.python的先决条件),但出现了以下错误:
Unhandled Error
Traceback (most recent call last):
File "C:\Python27\lib\threading.py", line 524, in __bootstrap
self.__bootstrap_inner()
File "C:\Python27\lib\threading.py", line 551, in __bootstrap_inner
self.run()
File "C:\Python27\lib\threading.py", line 504, in run
self.__target(*self.__args, **self.__kwargs)
--- <exception caught here> ---
File "C:\Python27\lib\site-packages\twisted\python\threadpool.py", line 172, in _worker
result = context.call(ctx, function, *args, **kwargs)
File "C:\Python27\lib\site-packages\twisted\python\context.py", line 118, in callWithContext
return self.currentContext().callWithContext(ctx, func, *args, **kw)
File "C:\Python27\lib\site-packages\twisted\python\context.py", line 81, in callWithContext
return func(*args,**kw)
exceptions.TypeError: 'NoneType' object is not callable
我只是无法检测到问题。
也许有人已经尝试过该脚本并且它有效?或者如果有人尝试过使用其他方法对unittest.TestSuite进行并行测试,请与我分享!我已经花了几周时间围绕 SauceLabs 的建议 wd.parallel 进行工作。 saucelabs 的示例并行测试代码不适用于我的设备,因为我目前正在运行 2.7.3(我们团队所需的版本),并且需要在 runTest()
和 tearDown()
方法声明上方添加装饰器 @wd.parallel.multiply
不应该是一个选项,因为我是创建一个应该可以被 future 的 webdriver 测试用例轻松使用的脚本,并且只需几行代码即可运行它们。
最佳答案
你可以看看nose,它有一个用于并行运行Python测试的多处理插件:https://nose.readthedocs.org/en/latest/plugins/multiprocess.html
关于python - unittest.testsuite 中的并行测试测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14253158/