我正在尝试更新我的 Selenium Grid Hub 功能测试,以便通过 nose测试框架运行。
目前,没有经过测试,如果我想启动一个进程并让它针对特定节点运行,我会在SelRunner.py文件中添加这种类型的代码
p1 = subprocess.Popen('python Tst_Ayusa_Nmo.py 5564 WINDOWS chrome')
然后将5564 WINDOWS chrome的系统参数传递给我的测试文件,它将知道它应该执行哪个Grid节点。
#execute test on this node: 5564 WINDOWS chrome
def setUp(self):
if len(sys.argv) > 1:
args = sys.argv
port = args[1]
platform = args[2]
browser = args[3]
现在我看了很多关于鼻子的帖子,但我不太确定如何在下面做同样的事情:
if __name__ == '__main__':
argv = ['--with-xunit', 'Tst_Ayusa_Nmo.py 5564']
nose.main(argv=argv)
======================================================================
ERROR: Failure: AttributeError ('module' object has no attribute 'py 5564')
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\nose\loader.py", line 402, in loadTestsFromName
module = resolve_name(addr.module)
File "C:\Python27\lib\site-packages\nose\util.py", line 321, in resolve_name
obj = getattr(obj, part)
AttributeError: 'module' object has no attribute 'py 5564'
----------------------------------------------------------------------
Ran 1 test in 0.001s
FAILED (errors=1)
非常感谢!
附:除了命令行之外,我对其他传递节点配置的方法持开放态度。
答案 0 :(得分:1)
我使用TestConfig插件。所以我推出了如下的鼻子测试:
nose.run(argv=['nosetests','-v','-s','--with-xunit','--tc-file','./configFile'],
plugins=[TestConfig(),Capture(),Xunit()])
我在内部测试
from testconfig import config
import sys
class testModule_1:
def test_M1_1(self):
print 'Module 1 Test 1 Config: ' + config['rc_configuration']['command']
我的配置文件示例:
[TEST_CONFIG]
xunitFile = firefoxTests.xml
[rc_configuration]
command = GoogleChrome