3

我的代码:

  1. 这是初始化方法
    [TestInitialize()]
    public void MyTest Initialize()
    {}

  2. 这是测试 1
    [TestMethod]
    public void Validate_Create_Command()
    { }

  3. 这是测试 2
    [TestMethod]
    public void Validate_Delete_Command()
    {}
    现在 test1 打开应用程序并关闭应用程序 & test2 也打开应用程序并关闭。我的问题是如何在所有测试完成后打开应用程序并关闭应用程序
4

3 回答 3

2

首先,我建议您始终在测试开始时打开并在结束时关闭。您的录音应该足够灵活,您可以将它们组合起来导航到应用程序的不同部分。我将首先回答您的实际问题。

如果您想在开始时打开并在结束时关闭,我使用此模式

[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()]

于 2013-10-24T02:05:23.720 回答
1

您可以将用于启动和关闭应用程序的方法调用从测试方法复制到初始化和清理方法中,然后从测试方法中删除调用。

在 Visual Studio 2010 和 2012 之间,Coded UI 管理测试用例之间的应用程序的方式发生了变化,其CloseOnPlaybackCleanup工作方式也发生了变化。有关更多详细信息,请参阅http://blogs.msdn.com/b/visualstudioalm/archive/2012/11/08/using-same-applicationundertest-browserwindow-across-multiple-tests.aspx

于 2013-10-21T19:16:58.123 回答
1

您将需要重新录制测试 1 和测试 2 以不再打开/关闭应用程序。

在 TestInitialize 中,记录应用程序的启动。在 TestCleanup 中,记录您的应用程序的关闭。

运行 CodedUI 测试时会发生什么:

  • 第 1 步:TestInitialize 运行启动您的应用程序

  • 第 2 步:Test1 和 Test2 运行(同样,您将删除
    应用程序的启动/关闭)

  • 第 3 步:TestCleanup 运行,关闭您的应用程序

    #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
    
于 2013-10-21T14:01:32.440 回答