从独立应用程序执行编码的UI测试

时间:2012-11-20 21:49:00

标签: c# coded-ui-tests

我发现了几篇关于如何使用mstest实用程序执行代码UI测试的博客文章,但我需要从我的C#应用​​程序执行它们。我尝试了最简单的事情:我创建了一个控制台应用程序,添加了对

的引用
  • Microsoft.VisualStudio.TestTools.UITest.Logging.dll
  • Microsoft.VisualStudio.TestTools.UITest.Playback.dll
  • Microsoft.VisualStudio.TestTools.UITesting.dll

我尝试从我的应用程序调用UI测试方法。我收到以下错误:

The following is not a valid technology name: MSAA. To search for a control, you must specify a valid technology name.

我尝试引用与UI测试相关的其他程序集,但错误保持不变。也许我应该添加到App.config以便能够运行测试?

7 个答案:

答案 0 :(得分:3)

我正在使用bat文件执行编码的UI测试,您只需将CUIT测试.dll文件复制到您的应用程序并通过bat文件调用它来执行。 即使您可以使用测试代理从您所在的不同计算机上运行代码UI测试 没有Visual Studio。

我的bat文件如下所示:

从DLL运行所有测试方法:


"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\mstest.exe" /testcontainer:"DLL_Location\CUIT_03.dll" /resultsfile:"ResultFile_Location\result.trx"

从DLL运行单一测试方法:


"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\mstest.exe" /testcontainer:"DLL_Location\CUIT_03.dll" /test:"TestMethodName" /resultsfile:"ResultFile_Location\result.trx"

答案 1 :(得分:2)

答案 2 :(得分:1)

在C#中使用MSTest运行时遇到了类似的问题。我正在使用Selenium,因此我使用[TestClass]属性标记了我的基类。我需要CodedUI来测试文件上传。当我将其更改为[CodedUITest]时,它可以工作。

答案 3 :(得分:0)

如果从C#调用MSTest,您会解决问题吗?如果是,请MSDN post tells you how

否则,我会尝试在MSTest中使用反汇编程序来查明它的作用以及它使用的引用。快速浏览一下,我看到了Microsoft.VisualStudio.QualityTools.ExecutionCommon以及Microsoft.VisualStudio.QualityTools.CommandLine中名为Executor的类。

请问,为什么你需要从C#调用CUIT?

答案 4 :(得分:0)

我相信你错过了一些参考资料,试试这个博客,这些都是你需要的参考资料:

c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\

Microsoft.VisualStudio.TestTools.UITesting.dll
Microsoft.VisualStudio.QualityTools.CodedUITestFramework.dll

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\image

Microsoft.VisualStudio.TestTools.UITest.CodeGeneration.dll
Microsoft.VisualStudio.TestTools.UITest.Framework.dll
Microsoft.VisualStudio.TestTools.UITest.Playback.dll

试试此博客:http://blogs.microsoft.co.il/shair/2010/07/15/running-codedui-test-from-another-application/

它列出了你需要的所有参考资料(尝试过,它适用于winforms(MSAA))。

答案 5 :(得分:0)

检查您的应用程序是否以32进程运行,因为编码的UI不能与64位进程一起使用,也不能在其中使用。

答案 6 :(得分:0)

嗨,我的工作是: 使用下面的代码==>

Playback.Initialize();
CockpitAutomate.CockpitAutomate c = new CockpitAutomate.CockpitAutomate();
c.RunCockpit();
Playback.Cleanup();