我们正在使用Visual Studio 10集成的MS单元测试来构建我们的单元测试。
如果尝试访问此功能的用户具有正确的权限,我们的应用程序中的某些功能只能正常工作 - 比如是计算机的管理员(甚至是评估的管理员(取决于目标系统)。例如,我们正在创建新的性能计数器 - 您需要成为管理员。
现在,我想用单元测试来测试这些功能。当我以管理员身份启动VS时,一切都很好。但我们也有一个自动构建系统(Jenkins),它与普通用户一起运行单元测试。 问题是,当运行单元测试的用户没有运行它们的权限时,是否有一种很好的方法(比如方法属性)跳过测试。
编辑1
基于目标机器更改配置并不能让我满意。我刚刚找到了TestClassExtensionAttribute Class和一些不错的tutorial如何实现它。我现在会尝试这样做,因为在开发测试时会更容易。
答案 0 :(得分:5)
您可以在测试中使用TestCategories。 只需标记您的测试:
[TestCategory("Admin") TestMethod()]
public Void DebitTest()
{
}
然后排除类别:
mstest /testcontainer:MyTestprojectName.dll /category:"!Admin"
您可以在每个测试中使用多个类别
在此处查看更多信息: http://msdn.microsoft.com/en-us/library/dd286683.aspx
答案 1 :(得分:0)
您还可以将所有相关测试放在测试列表中,然后运行此列表,如下所示:
http://msdn.microsoft.com/en-us/library/ms182461(v=vs.80).aspx