Java中是否存在C#mstest等效的系统属性?

时间:2011-09-20 19:07:05

标签: c# .net properties system mstest

我希望能够将系统参数 - “host”传递给MStest套件。要为持续集成创建自动作业,我希望能够将主机指定为参数,以便在该特定主机上运行测试。我用mstest找不到任何这样的选项。 在Java中,-Dhost =“localhost”可以工作,可以将其指定为正在运行的VM的参数。在Ctest的MStest中是否有类似的方式?

2 个答案:

答案 0 :(得分:1)

您提到的Java系统属性并不等同。以下是关于如何估算您正在寻找的内容的几点想法:

[1]

Visual Studio测试支持包括Test Run Configurations(在Visual Studio 2010中重命名为Test Settings)。这是一个文件,它指定了许多控制测试运行方面的设置。例如,您可以在测试之前部署其他文件,或者在测试运行开始之前运行“安装”批处理脚本。

如果您拥有一组有限的主机,则可以为每个主机分别设置测试运行配置/测试设置。每个配置/设置将部署包含不同主机名称的文件。然后,您可以将该文件作为单元测试设置的一部分读取,可能来自您的[TestInitialize]方法。有点兴奋,但也许它会做你想要的。

[2]

您可以在运行测试之前设置系统环境变量(例如“TESTHOST”),然后从测试中读取该环境变量。您可以将所有这些包装在一个简单的程序或批处理脚本中,该脚本接受一个参数来设置环境变量,调用mstest,然后取消设置环境变量。例如,this StackOverflow post可能会为您提供有关如何使用PowerShell执行此类操作的一些想法。

答案 1 :(得分:0)

我不相信有一个确切的等价物。相反,请尝试利用.NET配置文件:

将应用程序配置文件(App.config)添加到MSTest项目中。将“系统”属性添加为appSettings部分中的键。使用ConfigurationManager.AppSettings集合在测试中引用这些值。