我正在为Web应用程序使用Visual Studio 2012 Coded UI测试。我有一个测试登录到启动浏览器的应用程序,找到登录对话框,输入凭据,然后单击确定。我有一个断言,在登录后检查正确的URL。此测试似乎正常运行。我的问题是它在测试运行后关闭了浏览器。我需要保持浏览器打开,所以我可以按顺序运行下一个测试。我该怎么做?
目前,我的[TestCleanup()]部分中没有任何内容。我假设我正在寻找的东西都在这里,但到目前为止,我还没有很多运气搞清楚应该是什么。
答案 0 :(得分:2)
我没有找到此解决方案的原始来源:( 您可以使用如下所示的方法。需要在TestSetup中调用此方法。同时声明tyep BrowserWindow
的类级变量_browserWindowprivate void SetBrowser()
{
if(_browserWindow == null)
{
BrowserWindow.CurrentBrowser = "ie";
_browserWindow = BrowserWindow.Launch("http://www.google.com");
_browserWindow.CloseOnPlaybackCleanup = false;
_browserWindow.Maximized = !_browserWindow.Maximized;
}
else
{
BrowserWindow.CurrentBrowser = "ie";
_browserWindow = BrowserWindow.Locate("Google");
_browserWindow.Maximized = !_browserWindow.Maximized;
}
}
答案 1 :(得分:0)
好的,我需要做的就是在每次测试之前启动和登录。我认为我想要的是首先运行浏览器和登录测试,然后是每个额外的测试。在阅读了更多内容之后,我已经确定了我真正想要的是将此逻辑作为每个测试的初始化代码运行。我已经通过将此代码添加到我在Visual Studio 2012中启动编码的ui项目时生成的默认[TestInitialize()]来完成此操作。
答案 2 :(得分:0)
我发现以下方法可用于Visual Studio 2015中的数据驱动编码UI测试。
您将需要使用[ClassInitialize]并根据[TestMethod]开始的位置打开并引导您的浏览器。
在执行测试类中的所有方法后,使用[ClassCleanup]释放资源。
通过使用[TestInitialize]并使用[TestCleanup]进行清理测试,可以在初始化类后重定向测试方法。但请注意,因为每种测试方法都会出现这种情况,如果关闭浏览器实例,则以下测试将失败。
private static BrowserWindow browserWindow = null;
[ClassInitialize]
public static void ClassInitialize(TestContext context)
{
Playback.Initialize();
browserWindow = BrowserWindow.Launch(new Uri("http://198.238.204.79/"));
}
[ClassCleanup]
public static void TestCleanup()
{
browserWindow.Close();
Playback.Cleanup();
}