如何从代码中禁用CodedUI测试代理?

时间:2012-12-10 16:50:41

标签: tfs error-handling automation coded-ui-tests

我们有一项服务来获取XML中的自定义测试并将其转换为CodedUI测试。然后,我们启动一个MSTest流程,将测试加载到测试控制器中,然后将测试分发到各个代理。我们在晚上进行回归测试,因此如果出现问题,没有人可以修复系统。当测试程序中出现某些异常时,它会弹出一个错误窗口,并且不再能够在系统上运行测试。后续测试将加载到代理中并立即失败,因为它们无法执行分配的任务。数千次在多个系统上进行整夜测试的测试现在都会在几分钟内失败。

我们可以通过检测返回的速度来检测是否发生了错误,但我们不知道如何禁用代理,以免它再接受任何测试。

附录

如果测试失败如此悲惨以至于没有更多的测试可以尝试成功运行(如上所述,我们可能没有处理某些可能是新的弹出窗口的操作),那么我们想要禁用该代理,因为没有更多的测试需要在它上面运行:它们都会失败。由于我们有许多代理并发运行,如果一个代理失败(并且被禁用),负载仍然可以在没有长串故障的情况下分发。这些其他回归测试仍然有机会成功(一切正常)或失败(我们是否错过了另一个弹出窗口,或者这是一个真正的回归失败)。

在20秒内发生2000次失败并没有说什么,除了1系统有一个没有人意识到它会有的问题,现在我们浪费了一整夜的测试。 2个故障(1个自然,1个由先前故障引起的问题)和1个系统故障意味着总夜晚运行可能延长一两个小时我们有关于如何开始一天的有用数据:修复1个测试并重新运行两个故障

2 个答案:

答案 0 :(得分:0)

在这种情况下,需要中止testrun。如果您自己运行mstest,则需要在命令行进程中注入^ c。但是:如果没有人来修复它,为什么后续测试失败很重要?如果它只是为了快速查看哪个测试是错误的原因,为什么不生成代码ui检查消息框是否存在并使用Assert.inconclusive标记测试不确定。引起的测试会像旗帜一样突出。

答案 1 :(得分:0)

如果您可以检测到要禁用代理的点,则可以通过运行“TestAgentConfig.exe delete”来禁用代理,这会将代理重置为未配置状态。

相关问题