使用MSBuild将参数传递给MSTests

时间:2009-01-20 10:42:22

标签: msbuild conditional mstest team-build

我有一个问题,想知道是否可以以特定的方式解决。

我希望能够在将在TeamBuild服务器上运行的MSBuild脚本中传递参数或设置某种变量。

此参数将用作MSTest中TestFixture设置中的条件,以决定要使用的类的具体实现。它在构建服务器上运行时是模拟版本,在开发人员计算机上运行时是对物理资产的引用。

这很容易吗?我可以设置一个环境变量,但更喜欢MSTest和MSBuild中可以使用的特定内容。

2 个答案:

答案 0 :(得分:1)

我找到的最简单的方法是编写配置文件。有一些MsBuild社区任务可以实现这一目标。

答案 1 :(得分:0)

作为xUnit指南,测试应该接受参数。它们应该在没有人必须配置的情况下运行。

public void TestMethodName()

您的需求似乎更倾向于dependency injection。对于像Spring.Net这样的框架更适合。

<强>更新
从您的评论中,您似乎只需要一个类似于#define BUILD的开关。尝试条件编译符号(项目设置&gt;构建),以及使用ConditionalAttribute修饰的ReplaceCollaboratorsForBuildServer方法,并在testFixture安装方法的末尾调用。