4

我有一个简单的 C# 程序,它有一组单元测试。这是在 Visual Studio 2010 上开发的。现在在另一台计算机上,我尝试使用 Visual Studio 2012 重新加载此解决方案并运行测试。我能够成功地重建解决方案,但是没有单元测试出现在测试资源管理器中。Visual Studio 项目(解决方案)位于 LaCie 以太网网络驱动器上。我将整个解决方案复制到本地 C: 驱动器,从网络驱动器关闭解决方案并在本地 C: 驱动器上重新打开复制的解决方案。现在,当我构建解决方案时,Test Explorer 会显示所有测试。我回去打开网络驱动器上的副本,测试资源管理器再次显示没有测试。它说要构建解决方案以查看测试列表,但是在成功构建包含主项目和单元测试项目的解决方案后,它仍然显示相同的消息。见下图: 在此处输入图像描述

为什么项目位于网络驱动器上会导致单元测试像这样失败而根本没有失败消息?

4

4 回答 4

7

我们终于使用以下命令让它在网络共享上工作:

setx COMPLUS_LoadFromRemoteSources 1

caspol -m -ag 1.2 -url file://<path>* FullTrust

例如,如果路径是\\computer\share\,那么第二个命令将是:

caspol -m -ag 1.2 -url file://\\computer\share\* FullTrust

(注意路径末尾的星号)

先关闭VS,运行命令,重启VS。这对我有用,而无需清理/构建我的项目。

于 2013-07-17T15:33:11.983 回答
3

重建应用程序的所有项目,包括任何包含测试类和测试方法的项目。它们将出现在测试资源管理器中。

或者

尝试将 async void 更改为 async 任务。

喜欢

[TestMethod]
public async Task<Customers> GetCustomers()
{
    var result = await ...
}

参考:单元测试资源管理器不显示 Metro 应用程序的异步单元测试

于 2012-09-29T18:18:16.100 回答
2

解决方案其实只是 Gary 的前半部分:

setx COMPLUS_LoadFromRemoteSources 1

更多阅读:http ://connect.microsoft.com/VisualStudio/feedback/details/502353/running-unit-tests-from-network-drive

于 2014-01-25T16:29:11.493 回答
0

.Net 5您需要将命令添加到命令test列表project.json中。

  "commands": {
    "web": "Microsoft.AspNet.Server.Kestrel --server.urls=http://localhost:5000",
    "test": "xunit.runner.dnx"
  },
于 2015-12-14T20:00:17.713 回答