我正在使用Python和Selenium Webdriver。我在testSuite中包含了一组testCases,我希望它们能够并行运行,而不管它们的testCase配置如何(其中一些将在本地运行,其中一些将通过saucelabs运行)。
我遇到过this page。这个应该是一个杀手,但它无法在我的单位上正确运行。我尝试运行代码,安装了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(我们的团队所需的版本),以及需要在@wd.parallel.multiply
和runTest()
方法声明之上添加装饰器tearDown()
不应该是一个选项,因为我正在创建一个应该可以被未来的webdriver testCases轻松使用的脚本,并且只是运行它们只需几行代码即可。
答案 0 :(得分:1)
你可以看看nose,它有一个多处理插件,用于并行运行Python测试:https://nose.readthedocs.org/en/latest/plugins/multiprocess.html