在Visual Studio和Team Build中为嵌入式资源创建自动测试?

时间:2011-10-11 08:38:00

标签: unit-testing nunit tfs2010 environment-variables embedded-resource

在我目前的.Net 4.0解决方案中,我有一个项目包含许多XML文件作为嵌入式资源。这些文件有很多开发活动,我的团队中的一个开发人员很可能忘记将特定XML文件的构建操作设置为嵌入式资源。

我所做的是确保不会发生这种情况,并且完全适用于VS2010中的本地构建,是在NUnit中创建一个自动化测试,使用Assembly.GetManifestResourceNames()计算资源数量,然后将其与我的资源程序集的正确源目录子树中的文件计数。只要这些匹配就意味着所有文件都将build-action正确设置为“embedded resource”。

现在,我的问题是我的测试使用相对路径来查找资源项目中的文件目录,并且构建服务器(使用TFS2010)上的工作目录不同。

解决此问题的最佳方法是什么?我曾想过使用环境变量,这些变量可以在开发者机器和构建服务器上进行不同的设置,但理想情况下我希望在开发者机器和构建服务器上进行最少量的配置。

1 个答案:

答案 0 :(得分:2)

好的,这是我最终解决的问题:

  1. 测试使用Environment.GetEnvironmentVariable检查特定环境变量,如果未设置,则使用可在使用Visual Studio 2010的开发计算机上运行的相对路径,否则它使用环境变量中的路径

  2. 对于构建服务器(Team Build),我将构建过程的参数设置为等于环境变量,然后在我的NUnit任务中,我将NUnit Environment变量设置为构建参数的值。

  3. 此解决方案可以轻松设置新的开发人员计算机,但如果他们偏离默认路径设置,则可能需要对构建代理进行一些配置。