【问题标题】:Coded UI Tests: Start application under test only if it is not already running编码的 UI 测试:只有在测试中的应用程序尚未运行时才启动它
【发布时间】:2012-06-18 17:50:46
【问题描述】:
在 Visual Studio 2010 中使用“编码的 UI 测试”时,是否有一种简单的方法来启动被测应用程序 (AUT)仅当 AUT 尚未运行时?
我知道我可以从头开始实现这样一段启动代码,但我想知道 Visual Studio 测试框架是否提供了开箱即用的功能。
【问题讨论】:
标签:
visual-studio-2010
unit-testing
automated-tests
mstest
coded-ui-tests
【解决方案1】:
似乎可以使用以下代码完成:
[TestInitialize]
public void MyTestInitialize()
{
if (_application != null)
{
return;
}
Process[] processes = Process.GetProcessesByName("ApplicationUnderTest");
if (processes.Length > 0)
{
_application = ApplicationUnderTest.FromProcess(processes[0]);
}
else
{
_application = ApplicationUnderTest.Launch(@"C:\Path\To\ApplicationUnderTest.exe");
}
}
仅当 AUT 尚未运行时才会启动。
【解决方案2】:
据我所知,如果应用程序当前未运行,则没有内置方法可以启动应用程序。
编写一些自定义的东西来做到这一点是微不足道的,只要确保你能够让你的被测试应用程序进入一个已知状态,这样之前的测试失败就不会导致它失败后的所有测试运行。对于 Web 应用程序而言,返回已知状态可能就像设置 URL 一样简单,但对于复杂的桌面应用程序,返回已知状态可能会异常复杂。