我有以下问题:使用/noshadow选项运行nunit-console有什么优点和缺点?您的意见将非常有帮助,谢谢
发布于 2010-01-07 08:43:58
我发现/noshadow的主要问题是它阻止了你的项目的构建,因为NUnit现在被迫使用和锁定你的DLL。如果将此选项保留为禁用状态,则NUnit会创建DLL的副本。
如果你正在尝试实践测试驱动开发,并且不断地在红、绿、重构的循环中构建项目,那么你就不能轻易地使用/noshadow。您将收到如下错误消息:
进程无法访问文件'bin\Debug\calculator.dll‘,因为该文件正被另一个进程使用。
可能有一些方法可以解决这个问题,但这是我发现的主要问题。
至于什么时候你会使用这个:我认为主要的原因是为了提高性能,但由于大多数真正的单元测试运行得非常快,我不确定你什么时候会真正需要它。我相信其他人会想出一些很好的例子。
发布于 2011-09-26 21:50:34
如果您碰巧在测试中依赖于任何使用文件位置的东西,比如说一些奇怪的程序集加载过程,或者只是像Assembly.GetExecutingAssembly().Location这样简单的东西,那么您很可能会遇到问题,因为NUnit已经将您的文件复制到了构建位置之外的其他位置。
我要说的是,这些问题通常是可以避免的--特别是如果您在单元测试中避免接触文件系统的话。
发布于 2016-10-05 00:05:55
一个快速的警告,Nunit的gradle插件已经改变了如何指定阴影选项。我花了一段时间才找到这个,所以张贴在这里,以防它可以帮助其他人。
noShadow被shadowCopy替换,缺省为false,即名称已更改,含义/方向相反。这显然是为了更紧密地匹配Nunit 3所做的事情。您可以在https://github.com/Ullink/gradle-nunit-plugin/blob/master/CHANGELOG.md的插件更改日志中了解有关这一点的详细信息
https://stackoverflow.com/questions/2009118
复制相似问题