单元测试无理由删除文件

时间:2016-02-23 10:48:19

标签: c# unit-testing nunit

在我的解决方案中,我有一堆项目包含内容文件和一些静态类,其中包含字符串到这些文件的相对路径。我还有一些包含测试和测试内容文件的测试项目。

当我第一次使用Run All / Debug All进行测试时重建我的解决方案时,某些内容文件将从输出目录中删除,导致某些测试失败。第二次运行全部放回文件并通过测试。此外,如果我选择所有测试并执行Run Selected所有测试都通过,文件不会被删除。

正在删除的文件位于内容项目中,其中一个测试项目具有引用,因为它测试文件和静态类。我怀疑当我运行测试时它清理输出目录并重建测试项目而不构建项目依赖项,因此文件。但是没有其他文件被删除。

没有任何测试在其中的任何位置调用Delete,并且在运行任何测试的第一行之前删除文件。

作为发生事件的一个例子:

Rebuild All

Run All

Files are deleted and test fails

Run All

Files are restored and tests pass

从那时起,测试将一直持续到我重建为止,在这种情况下,第一次全部运行将失败,因为它会删除文件,但后续的文件会恢复它们并通过。

编辑:

查看构建日志,看来正在构建包含其中内容的项目,但它首先构建。日志中的最后一个任务是删除任务,删除该项目的所有内容。此删除任务是由最后一个创建增量清理的项目引起的,该项目将查找所有这些文件并将其删除。将内容项目作为项目参考添加到此最终项目似乎是一种解决方法,但它并不完全理想。

1 个答案:

答案 0 :(得分:0)

任何需要在输出文件夹下的东西必须由你的构建放在那里。如果您手动创建子文件夹并在那里复制那些无法工作的东西。替代方法取决于文件夹内容的性质,因此您应该获得更多信息。