从另一个应用程序运行CodedUI测试

时间:2018-05-28 01:39:24

标签: c# coded-ui-tests

我打算从另一个项目(在同一个解决方案中)运行我的编码UI测试。我在我的winform app项目中添加了CUIT项目的参考。我也添加了这些引用

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,但发生了同样的错误。

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

2 个答案:

答案 0 :(得分:0)

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

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

enter image description here

请确保您已添加所有dll。如果您无法找到dll,请在C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ PrivateAssemblies中查找它们。

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

答案 1 :(得分:0)

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

"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”计算机而不是“任意”。