在Visual Studio 2008中进行单元测试期间,有没有办法将命令行参数传递给应用程序cotext?我的部分代码需要以这种方式配置,我只能通过传递参数来实现。
我已经检查了调试模式,并且命令行参数已经填充了一些与测试相关的数据。
谢谢!
答案 0 :(得分:0)
确定,
我正在挖掘很长时间,并且无法找到任何直接传递CLI参数的方法。
然而,有一个非常好的解决方法:
您的CLIArgsHolder类必须以合理的方式编写以返回空值,并且如果缺少任何CLI参数,则在初始化时不抛出异常。在我的情况下,我只在私有字段为null或使用静态属性获取为空时解析。
public static class MyCLIArgsHandler
{
private string mAppName = null;
private string mStationName = null;
public string StationName
{
get
{
if(string.isNullOrEmpty(MyCLIArgsHandler.mStationName))
{
//PARSE CLI ARGS
}
return MyCLIArgsHandler.mStationName;
}
}
//...
}
在开始执行测试之前,您可以将样本值注入该类的字段,以便:
[ClassInitialize()]
public static void MyClassInitialize(TestContext testContext)
{
PrivateType type = new PrivateType(typeof (MyCLIArgsHolder));
type.SetStaticFieldOrProperty("mAppName", "myTestAppName");
type.SetStaticFieldOrProperty("mStationName", "myTestStationName");
}
瞧!
现在,您的所有类都可以将MyCLIArgsHolder与您在测试类初始化中输入的值一起使用。