2009-01-29 33 views
0

我有一些文件我想在单元测试中使用,但是我想让这些文件相对于包含单元测试的dll的位置,这可能吗?在我的单元测试中包含数据

换句话说,我已经包含了一个Resources文件夹,其中包含一些用于测试的单元测试文件,我标记了文件“Build Action”=“Content”和“Copy to Output Direct”=“Always Always”但那并不是我认为会做的事。我认为它会复制内容,但是当我的测试运行时,他们说这些文件不存在。

我宁愿不通过放置显式路径来解决这个问题,因为这些路径会因开发者机器而异。

我也尝试添加以下作为预生成事件,也作为生成后事件,但这也没有解决我的问题。

xcopy "$(ProjectDir)Resources\*.*" "$(OutDir)Resources\*.*" /i /d /s /y

如果我使以前一个前或后建事件中,我看到数据被复制到我的OUTDIR,但它不会使它的TestResults文件夹是在资源文件夹也必须被复制为测试有任何数据测试。

回答

2

unittest runner必须将您的unittest程序集复制到某个临时文件夹。不要复制这些资源文件,而应考虑将它们包含为嵌入式资源,然后使用Assembly.GetManifestResourceStream()从程序集中加载它们。

+0

谢谢!这种解决方案并不完全如我所想,我会去做,但它的工作原理。 – Dave 2009-01-29 17:33:43