运行 来自另一个应用程序的 CodedUI 测试

Running CodedUI Test From Another Application

我打算 运行 我的编码 UI 测试来自另一个项目(在同一解决方案中)。我将 CUIT 项目的引用添加到我的 winform 应用程序项目中。我也添加了这些引用

Microsoft.VisualStudio.TestTools.UITesting.dll
Microsoft.VisualStudio.QualityTools.CodedUITestFramework.dll
Microsoft.VisualStudio.TestTools.UITest.CodeGeneration.dll
Microsoft.VisualStudio.TestTools.UITest.Framework.dll
Microsoft.VisualStudio.TestTools.UITest.Playback.dll

我的代码是这样的

Playback.Initialize();
TestProject.CodedUITest1 coded = new TestProject.CodedUITest1();
coded.CodedUITestMethod1();
Playback.Cleanup();

但是,我在 Playback.Initialize() 调用中遇到异常。 这是消息...

"An unhandled exception of type 'Microsoft.VisualStudio.TestTools.UITest.Extension.PlaybackFailureException' occurred in Microsoft.VisualStudio.TestTools.UITesting.dll"

有人说安装Test agent 2010/Test agent10可以解决这个错误。 我安装了 MS Visual studio Test Agent 2010,但出现同样的错误。

我在这里做错了什么? 谢谢

我尝试 运行 以与您相同的方式进行测试,它对我有效。

下面是我在项目中添加的参考dll

请确保您已经添加了所有的dll。如果您找不到 dll,请在 C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\PrivateAssemblies.

中查找它们

如果这不起作用,请提供内部异常的详细信息。

我找到了问题的答案。我发现内部异常的消息是

"Retrieving the COM class factory for component with CLSID {27876903-E697-4406-BF49-1B8B92CB8735} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))."

在四处挖掘后,我发现我有一个 32 位第三方 dll,我在我的 64 位机器上 运行。冲突是 64 位进程试图在 64 位机器中调用 32 位进程。

解决方案 是将项目属性更改为目标 'X86' 机器而不是 'Any'。