我正在玩 Coded UI Tests,为 calc.exe 应用程序编写一些测试。我正在尝试使用 ClassInitialize 打开应用程序,这样我的所有测试都可以在应用程序打开的情况下运行,而不是每次测试都必须打开和关闭应用程序。
我从谷歌搜索中找到了这个:http: //www.codesmartnothard.com/CommentView,guid,f28e6205-1ac5-41f3-be0d-f84d7db5c79b.aspx但它没有用。如果这实际上是它工作所需要的一切,那就太棒了。当我尝试它时会发生什么是 ClassInitialize 函数运行,应用程序打开,然后在第一次测试尝试运行之前立即关闭,所以当测试运行时,应用程序不再打开,并且在一段时间没有任何事情发生后不可避免地失败.
如何使用 ClassInitialize 打开应用程序并保持打开状态以使测试实际运行?
当我有以下代码时,我的测试运行:
[CodedUITest]
public class CodedUITest1
{
[TestMethod]
public void CodedUITestMethod1()
{
UIMap.OpenCalc(); //Opens calc.exe
UIMap.Click1(); //Clicks the "1" button
UIMap.CloseCalc(); //Closes application
}
public TestContext TestContext
{
get
{
return testContextInstance;
}
set
{
testContextInstance = value;
}
}
private TestContext testContextInstance;
public static UIMap UIMap
{
get
{
if ((map == null))
{
map = new UIMap();
}
return map;
}
}
private static UIMap map;
}
但是,如果我添加这个 ClassInitialize 方法,并在 TestMethod 中删除对 OpenCalc 的调用,它就不再起作用了。计算器打开,然后出于任何原因立即关闭。
[ClassInitialize]
public static void ClassInit(TestContext context)
{
Playback.Initialize();
try
{
UIMap.OpenCalc();
}
finally
{
Playback.Cleanup();
}
}