我正在尝试为mstest创建一些参数。你知道吗
基本上,我运行所有的自动化测试,并解析trx结果文件来获取所有失败的测试,并使用它来重新运行所有失败的测试。你知道吗
我创建了一个python脚本,它通过mstest运行CodedUI自动化测试用例。你知道吗
步骤1:调用如下子流程:
test_exe = "C:\VS14\Common7\IDE\mstest.exe"
test_container = "/testcontainer:\"C:\GUIAutomation\CodedUIGUIAutomation.dll\""
test_settings = "/testsettings:\"C:\GUIAutomation\CodedUI.testsettings\""
test_results = "/results:\"C:\GUIAutomation\results_automated.trx\""
p = subprocess.call([test_exe, test_container, test_settings, test_category, test_results])
MSTEST Run Command_1: C:\VS14\Common7\IDE\mstest.exe /testcontainer:"C:\GUIAutomation\CodedUIGUIAutomation.dll /testsettings:"C:\GUIAutomation\CodedUI.testsettings" /category:Automated /resultsfile:C:\GUIAutomation\results_automated.trx
第2步:解析trx结果文件以获得失败测试的列表,我将其附加到列表中以重新运行
fails_list.append(result.attrib['test1']
fails_list.append(result.attrib['test2']
fails_list.append(result.attrib['test3']
for x in fails_list:
test_list = test_list + "/test:{0} ".format(str(x))
test_list output: "/test:test1 /test:test2 /test:test3"
第3步:然后我尝试用这个子流程调用.. 你知道吗
test_results = "/results:\"C:\GUIAutomation\results_automated_rerun.trx\""
p = subprocess.call([test_exe, test_container, test_settings, test_list, test_results])
MSTEST Run Command_1: C:\VS14\Common7\IDE\mstest.exe /testcontainer:"C:\GUIAutomation\CodedUIGUIAutomation.dll /testsettings:"C:\GUIAutomation\CodedUI.testsettings" /test:test1 /test:test2 /test:test3 /resultsfile:C:\GUIAutomation\results_automated_rerun.trx
失败的原因是/测试:test1/test:test2被视为一个arg,但如果我将其剪切并粘贴到命令提示符中,它就可以正常工作。你知道吗
因此,测试列表应该是子进程的各个参数。所以
test_list = "/test:test1 /test:test2 /test:test3"
p = subprocess.call([test_exe, test_container, test_settings, test_list, test_results]
应该是的
arg_1 = "/test:test1"
arg_2 = "/test:test2"
arg_3 = "/test:test3"
p = subprocess.call([test_exe, test_container, test_settings, arg_1, arg_2, arg_3, test_results]
那么,如何动态生成多个arg呢?因为在一次运行中,我可能只有一个测试失败,但在另一次运行中,我可能有4个或5个arg,然后将它们插入到子流程调用. 你知道吗
其他注意事项:
只需生成
test_list
作为参数列表:然后写下你的论点清单
请注意
是错误的,因为路径包含
\r
:解析为回车符。应该是(如果真的需要报价,否则就放弃报价):(使用原始前缀+简单引号避免转义双引号)
相关问题 更多 >
编程相关推荐