nunit-console的Noshadow选项

时间:2010-01-05 21:09:43

标签: nunit

我有以下问题: 使用/ noshadow选项运行nunit-console有什么优缺点? 您的意见将非常有用 谢谢

3 个答案:

答案 0 :(得分:4)

我发现/ noshadow的主要问题是它会阻止你的项目构建,因为NUnit现在被迫使用并锁定你的DLL。如果禁用此选项,则NUnit会创建DLL的副本。

如果您正在尝试练习TDD并且不断在Red,Green,Refactor循环中构建项目,那么您就不能轻易使用/ noshadow。您将收到如下错误消息:

  

该进程无法访问文件'bin \ Debug \ calculator.dll',因为它正由另一个进程使用。

有可能解决这个问题,但这是我发现的主要问题。

至于你 使用它的时候:我认为主要原因是为了加快性能,但是由于大多数真正的单元测试运行得非常快,我不确定你什么时候真的需要这个。我相信其他人会提出一些很好的例子。

答案 1 :(得分:4)

如果您碰巧依赖于在测试中使用文件位置的任何内容,比如说一些好奇的程序集加载过程,或者只是像Assembly.GetExecutingAssembly()。Location这样简单的事情,那么您可能会遇到问题,因为NUnit已将您的文件复制到构建位置以外的其他位置。

我会说通常可以避免这些问题 - 特别是如果你在单元测试中避免触及文件系统。

答案 2 :(得分:0)

快速警告,Nunit的gradle插件已经改变了如何指定阴影选项。我花了一段时间才发现这个帖子,以便它可以帮助别人。

noShadow被shadowCopy取代,默认为false,即名称已更改,其意义/方向相反。这显然是为了更接近Nunit 3的作用。您可以在https://github.com/Ullink/gradle-nunit-plugin/blob/master/CHANGELOG.md

的插件changlog中阅读有关此内容的详细信息