TLDR; 如何根据app.config文件中的值在C#中创建预处理指令?
我正在使用Selenium进行集成测试。我有两个测试方法类,负责测试我的应用程序的不同区域。我的测试类使用[TestClass]
属性进行标识,我的测试方法使用[TestMethod]
属性进行标识,如下所示:
[TestClass]
public class TestsForAreaX
{
[TestMethod]
public void TestFoo()
{
//Do test logic here
}
[TestMethod]
public void TestBar()
{
//Do test logic here
}
}
当我重建我的解决方案时,所有已应用[TestMethod]
的方法都会出现在测试资源管理器中。
我现在要做的是在app.config中添加一些标志,以有条件地应用[TestMethod]
属性,以便我可以指定要运行的测试。原因是一些测试花了很长时间,我想排除它们而不必直接调整方法属性。
我知道预处理指令,如:
#if DEBUG
//debug mode
#elif
//release mode
#endif
但这只适用于构建配置,而不适用于app配置文件中的值,除非我弄错了?
答案 0 :(得分:2)
编译后无法删除程序集的属性。也许您正在寻找类别:
[TestClass]
public class TestsForAreaX
{
[TestCategory("LongRunning"), TestMethod]
public void TestFoo()
{
//Do test logic here
}
[TestCategory("ShortRunning"), TestMethod]
public void TestBar()
{
//Do test logic here
}
} enter code here
然后,您可以至少从命令行运行不同类别的测试,此站点说明如何: http://msdn.microsoft.com/en-us/library/dd286683.aspx