我的代码:
-
这是初始化方法
[测试初始化()]
public void MyTest Initialize()
{} -
这是测试 1
[测试方法]
公共无效 Validate_Create_Command()
{ } - 这是测试 2
[测试方法]
公共无效 Validate_Delete_Command)
{}
现在 test1 打开应用程序并关闭应用程序test2 还会打开应用程序并关闭。我的问题是如何在所有测试完成后打开应用程序一次并关闭应用程序
我建议您始终在测试开始时打开并在测试结束时关闭。您的录音应该足够灵活,您可以组合它们以导航到应用程序的不同部分。我将首先回答您的实际问题,稍后会回答如何最好地做到这一点。
如果你想在开始时打开并在结束时关闭,我使用这种模式
[TestClass]
public class Tests
{
[TestMethod]
public void TestMethod1()
{
UIMap.ClickNext();
UIMap.ClickPlusButton();
UIMap.AssertStuff();
}
[TestMethod]
public void TestMethod2()
{
UIMap.ClickNext();
UIMap.ClickMinusButton();
UIMap.AssertStuff();
}
[ClassInitialize()]
public static void ClassInitialize(TestContext testcontext)
{
Utilities.Launch();
}
[ClassCleanup()]
public static void ClassCleanup()
{
Utilities.Close();
}
}
public static class Utilities
{
private static ApplicationUnderTest App;
public static Launch()
{
try
{
App = ApplicationUnderTest.Launch(pathToExe);
}
catch (Microsoft.VisualStudio.TestTools.UITest.Extension.FailedToLaunchApplicationException e) {}
}
public static Close()
{
App.Close();
App = null;
}
}
要在测试到测试的基础上执行此操作,您只需使用普通(如下)[TestInitialize()] 和 [TestCleanup()]
可以将用于启动和关闭应用程序的方法调用从测试方法复制到初始化和清理方法中,然后从测试方法中删除调用。
在 Visual Studio 2010 和 2012 之间,编码的 UI 管理应用程序的方式发生了变化,CloseOnPlaybackCleanup
的工作方式也发生了变化。有关更多详细信息,请参阅 http://blogs.msdn.com/b/visualstudioalm/archive/2012/11/08/using-same-applicationundertest-browserwindow-across-multiple-tests.aspx
您需要重新记录测试 1 和测试 2 才能不再打开/关闭应用程序。
在"测试初始化"中,记录应用程序的启动过程。在 TestCleanup 中,记录应用程序的关闭情况。
运行 CodedUI 测试时将发生的情况是:
-
步骤 1:测试初始化运行以启动应用程序
-
第 2 步:运行 Test1 和 Test2(同样,您将删除
启动/关闭您的应用程序) -
第 3 步:运行测试清理以关闭您的应用程序
#region Additional test attributes //Use TestInitialize to run code before running each test [TestInitialize()] public void MyTestInitialize() { this.UIMap.OpenMyApplication(); } //Use TestCleanup to run code after each test has run [TestCleanup()] public void MyTestCleanup() { this.UIMap.CloseMyApplication(); } #endregion