Microsoft.VisualStudio.TestTools.UITesting,版本=14.0.0.0

Microsoft.VisualStudio.TestTools.UITesting, Version=14.0.0.0

我们最近从 Visual Studio 2013 年切换到 2015 年,Microsoft 测试管理器也是如此。
我创建 CodedUI 测试的方式与我在 VS2013 中创建它的方式相同。将它与测试用例相关联,然后尝试 运行 它作为来自 Microsoft 测试管理器的自动化测试。不幸的是我一直收到这个错误:

Error adding test case [16730] to test run: Unable to load the test container '\NAS\UTV\TFS2012\NOO\Automated Tests\Automated Tests\Automated Tests_20160310.5\testcodedui.dll' or one of its dependencies. Error details: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.VisualStudio.TestTools.UITesting, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.

这可能是由于 VS2015 中自动化测试的变化(没有测试控制器等)。

是否可以将 Test Controller 和 Test Agent 2013 与 VS 和 MTM 2015 一起使用?有人知道这个的解决方案吗?

通常情况下,您的 2013 测试代理会附带 Coded UI 2013 (V12) 的库,当您创建测试时,这些引用会由 Visual Studio 自动添加。

在您的情况下,您有 2015 VSTS,因此 2015 (V14) 的 Coded UI 引用将在您的测试中。但是,当您 运行 测试时,您的 2013 代理将无法找到您在测试中拥有的参考资料。要解决此问题,您需要删除所有默认添加的编码 UI 引用并添加您自己的引用。

  1. 记下测试中的所有 Refrenced dll 并记下它们所在的位置。
  2. 在您的解决方案下创建一个 lib 文件夹并将所有引用的 dll 复制到该文件夹​​并将它们添加到解决方案中(注意不是引用只是添加它们)
  3. Coded UI 中有几个隐式引用(您的引用的引用)您可以从 this link

  4. 中识别它们
  5. 也将它们添加到您的 lib 文件夹中。

  6. Select 你的 .csproj 文件 ==> 右击 ==> 卸载项目
  7. 再次右键单击 ==> 编辑 .csproj 文件
  8. 看看有没有导入Testtools.target模板的导入语句并注释掉。参考将是这样的 "Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" 条件="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')""
  9. 关闭您的项目并重新加载它。
  10. 添加对您在项目的 lib 文件夹下添加的所有 dll 的引用。
  11. 编译并确保没有发现任何构建错误。

在此之后,关联你的测试,希望它应该 运行。如果您仍然收到任何丢失文件错误,那么您缺少隐式引用。只需在 2015 VSTS 的程序文件目录中搜索并通过 lib 文件夹添加到项目引用中。它应该有效!!