我使用VS2013,运行120 c#selenium测试,其中.testsetting文件包含以下参数执行parallelTestCount =" 5"并测试超时6000毫秒(6秒)。 测试duartion超过6秒,我用这个配置来重现问题。 6秒后,5次测试失败,其余测试被跳过。 这就是我在输出窗口中得到的结果: "测试运行正在计算机名称中止,挂起测试的数量超过允许的最大数量' 5'。"
Testsettings文件
<?xml version="1.0" encoding="UTF-8"?>
<TestSettings name="RemoteWebDriver" id="e293abd4-745a-43f5-a831-2064f9305fc6" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
<Description>These are default test settings for a local test run.</Description>
<Deployment>
<DeploymentItem filename="TfsAutomation\testDefintionSources.config" />
<DeploymentItem filename="TfsAutomation\TfsAutomationCore.config" />
</Deployment>
<Scripts setupScript="TestScriptRemoteWebDriver.bat" />
<Execution parallelTestCount="5">
<Timeouts runTimeout="10000000" testTimeout="6000" />
<TestTypeSpecific>
<UnitTestRunConfig testTypeId="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b">
<AssemblyResolution>
<TestDirectory useLoadContext="true" />
</AssemblyResolution>
</UnitTestRunConfig>
</TestTypeSpecific>
<AgentRule name="LocalMachineDefaultRole">
</AgentRule>
</Execution>
<Properties />
</TestSettings>
答案 0 :(得分:1)
这个问题让我this并且正在阅读。值得一提的是,MsTest的内部结构从那时起经历了很多变化,至少根据上面的参考和我的知识。我只能在讨论结论中说 MSTest并行机制并不是并行的UI测试,而不知道测试环境的体系结构的内部结构。其次,在MsTest并行执行中,核心数在并行性方面很重要。请参阅this SO answer以了解有关线程管理的更多信息。 那么,问题是什么是最好的解决方案呢。如果没有很多关于MSTest的知识,但是对Selenium有足够的了解,我会说 Selenium-Grid 。让网格控制并行执行是安全的。