【问题标题】:Prevent MSTest from copying / deploying every dll防止 MSTest 复制/部署每个 dll
【发布时间】:2011-08-28 03:16:24
【问题描述】:

从 Visual Studio 运行 MSTest - 单元测试执行时间相对较快。

从命令行运行 MSTest 时,带有 /testsettings 标志 - 执行需要永远,这是因为它花费了 95% 的启动时间将 dll 复制到其 Out 文件夹。有没有办法防止这种情况发生?

项目中默认的 Local.testsettings 没有任何修改(这也意味着它是空的)。但是,如果我尝试从命令行使用同一个文件,MSTest 会抱怨缺少单元测试引用的 DLL。

【问题讨论】:

  • 95% 复制少量 DLL?
  • 可能更像是 99% 的时间复制 dll 的......
  • 我明天必须仔细检查,但我很确定在 Visual Studio 中的测试也会复制 Dll,但我可能会混淆 TFS 行为。两次运行之间的时间差是多少?

标签: c# visual-studio-2010 unit-testing mstest


【解决方案1】:

您是否尝试过在测试设置中禁用部署?当它被禁用时,测试应该就地运行,而不是在复制的程序集上运行。 (详情请参阅http://msdn.microsoft.com/en-us/library/ms182475.aspx。)

【讨论】:

  • 具体是怎么做的?我看到了设置文件的说明,但给出的示例是如何配置特定文件的部署。我没有看到任何其他可能有助于完成此特定任务的链接。
  • 这似乎没有帮助,如果没有为每个引用启用 Copy Local,即使运行设置中存在此设置,测试也无法执行。
【解决方案2】:

【讨论】:

  • 这肯定有帮助 - 但不能解决问题。它最终仍然会复制所有 dll(现在启动时间缩短到 2 分钟)。另外 - MS 对 /noisolatio 的描述意义不大(“在 MSTest.exe 进程中运行测试。这种选择提高了测试运行速度,但增加了 MSTest.exe 进程的风险”)
  • /noisolation 是关于进程隔离,而不是部署,这就是这个问题所要问的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多