MsTest 的多个属性嵌套在一个属性中
Multiple attributes nested in one attribute for MsTest
我在 C# 中进行了以下测试,我使用的是 MsTest:
using TestMethod=Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute;
using TestClass=Microsoft.VisualStudio.TestTools.UnitTesting.TestClassAttribute;
using Owner=Microsoft.VisualStudio.TestTools.UnitTesting.OwnerAttribute;
using Description=Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute;
using Timeout=Microsoft.VisualStudio.TestTools.UnitTesting.TimeoutAttribute;
namespace DataGroup
{
[TestClass]
public class Data
{
[Owner("Tester")]
[TestMethod, Timeout(5000)]
[Description(@"This is a sample test")]
public void TestCase_001()
{
}
}
}
在上面的代码中,在行中,
[TestMethod, Timeout(5000)]
我们可以添加自定义属性并引用 'TestMethod' 和 'Timeout' 属性来代替这一行吗?
如果可以,对我的测试框架有影响吗? MsTest 仍然可以识别我的测试并能够在没有任何影响的情况下执行测试?
C# 不支持多重继承,因此您不能创建同时继承 TestMethodAttribute
和 TimeoutAttribute
的属性。
您将不得不忍受在每个方法上都具有这两个属性。
注意,如果所有测试都需要相同的超时值,您可以使用TestSettings文件来指定全局超时值。
我在 C# 中进行了以下测试,我使用的是 MsTest:
using TestMethod=Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute;
using TestClass=Microsoft.VisualStudio.TestTools.UnitTesting.TestClassAttribute;
using Owner=Microsoft.VisualStudio.TestTools.UnitTesting.OwnerAttribute;
using Description=Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute;
using Timeout=Microsoft.VisualStudio.TestTools.UnitTesting.TimeoutAttribute;
namespace DataGroup
{
[TestClass]
public class Data
{
[Owner("Tester")]
[TestMethod, Timeout(5000)]
[Description(@"This is a sample test")]
public void TestCase_001()
{
}
}
}
在上面的代码中,在行中,
[TestMethod, Timeout(5000)]
我们可以添加自定义属性并引用 'TestMethod' 和 'Timeout' 属性来代替这一行吗?
如果可以,对我的测试框架有影响吗? MsTest 仍然可以识别我的测试并能够在没有任何影响的情况下执行测试?
C# 不支持多重继承,因此您不能创建同时继承 TestMethodAttribute
和 TimeoutAttribute
的属性。
您将不得不忍受在每个方法上都具有这两个属性。
注意,如果所有测试都需要相同的超时值,您可以使用TestSettings文件来指定全局超时值。