从Winform应用程序调用编码UI测试时,Playback.Initialize失败

时间:2014-08-08 08:21:37

标签: c# .net winforms visual-studio visual-studio-2012

我有类似的问题,我坚持不懈。要求为此提供一些解决方案。我有一个Win Form Application,可以接受用户输入,当用户点击OK时,它会调用Coded UI Test。 Winform位于项目A中,编码UI测试位于项目B中。项目B在项目A中作为参考添加。问题是当Winform应用程序调用Coded UI测试方法时,不会初始化播放。由于它没有初始化,因此编码的ui测试方法都不起作用。我尝试在各种论坛上搜索此内容,但无法为其找到合适的解决方案。我正在研究VS2012。还添加了对编码UI dll的引用。

The references to Project A are mentioned below and CopyLocal is set to True: c:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\PublicAssemblies\ Microsoft.VisualStudio.TestTools.UITesting.dll Microsoft.VisualStudio.QualityTools.CodedUITestFramework.dll

C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssemblies\
Microsoft.VisualStudio.TestTools.UITest.CodeGeneration.dll
Microsoft.VisualStudio.TestTools.UITest.Framework.dll
Microsoft.VisualStudio.TestTools.UITest.Playback.dll

对项目B的引用是相同的,但都来自C:\ Program Files \ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ Reference Assemblies \和CopyLocal设置为False

如果我为项目A将CopyLocal设置为False,则测试无法启动,因为它无法在项目文件夹中找到这些dll。

下面提到了处理我的目标的代码:

namespace WinFormtest
{
   public class WinFormTestClass
   {
     // Call the Coded UI Test in the order --> namespace.class.CodedUITestMethod
        test.codeduiclass.codeduitestmethod(); 
   }
}

创建新项目时创建的Program.cs具有以下内容。尝试在这里初始化编码的UI测试,但它不起作用:使用System;使用System.Collections.Generic;使用System.Linq;使用System.Threading.Tasks;使用System.Windows.Forms;使用Microsoft.VisualStudio.TestTools.UITesting;

namespace DMServerInstaller
{
static class Program
{
///

/// The main entry point for the application.
///

[STAThread]
static void Main()
{
     Application.EnableVisualStyles();
     Application.SetCompatibleTextRenderingDefault(false);
     if (!Playback.IsInitialized)
       {
         Playback.Initialize();
       }
       Application.Run(new Form());
}
}
}

// Below is the snippet of the coded UI test class
public class ServerTests
{
[TestInitialize]
public void TestInitialize()
{
if (Playback.IsInitialized)
{
Playback.Cleanup();
}
System.Threading.Thread.Sleep(TimeSpan.FromSeconds(5));
if (!Playback.IsInitialized)
{
Playback.Initialize();
}
}

[TestCleanup]
public void TestCleanup()
{
PreviousTestOutcome = TestContext.CurrentTestOutcome;
Log.Debug("Entering TestTeardown");
// If an assertion say cheese. Validate if this is required as CUI automatically takes screenshot on failures too.
if (TestContext.CurrentTestOutcome != UnitTestOutcome.Passed)
{
Camera.TakePicture(TestContext);
Playback.Wait(1000);
}
Log.Debug("Exiting TestTeardown");
}

[TestMethod]
public static void codeduitestmethod();
{
// Some statements here
}
}

请求您尽早帮助我。

0 个答案:

没有答案
相关问题