5

我发现了几篇关于如何使用 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 中添加一些东西才能运行测试?

4

7 回答 7

3

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

我的 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"
于 2013-10-07T09:18:20.737 回答
1

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

于 2014-05-20T14:53:15.047 回答
0

如果你从 C# 调用 MSTest,你会解决你的问题吗?如果是这样,这篇MSDN 帖子会告诉您如何.

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

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

于 2012-11-30T01:48:34.480 回答
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))。

于 2015-06-11T06:26:04.943 回答
0

检查您的应用程序是否作为 32 进程运行,因为编码的 UI 不适用于 64 位进程并且不能在其中使用。

于 2016-12-15T11:11:21.143 回答
0

嗨它在我的情况下工作:使用下面的代码==>

Playback.Initialize();
CockpitAutomate.CockpitAutomate c = new CockpitAutomate.CockpitAutomate();
c.RunCockpit();
Playback.Cleanup();
于 2017-07-14T09:03:41.957 回答