有两种情况我们需要考虑在ATP中分配资源(资源可能是创建用户,连接数据库)。他们是
- 每次测试后创建和删除资源。
- 在一组测试后创建和删除资源。
资源的创建和删除每次测试后:
如果我们想的一个测试执行之前创建特定对象的实例,并要清理执行后,分配给该对象的内存那测试,那么我们使用NUnit的Test SetUp
和Test TearDown
属性。在你的案例中,对象是用户数量的创建。
[SetUp]
:该函数装饰有测试设置属性包含一段代码的任何测试执行之前执行。
[TearDown]
:该函数装饰有测试TearDown中属性包含一段代码,任何测试的执行之后执行
实现:
[TestClass]
public class UnitTest1
{
[SetUp]
public void SetUP()
{
// Creating Users with proper credentials
}
[TestMethod]
public void TestMethod1()
{
//Write your ATP
}
[TearDown]
public void TearDown()
{
//Clean up
}
}
创作和资源的删除组测试后:
现在,如果我们想创建一个对象的实例为测试集,并且希望在执行所有测试后清理内存,然后分别清理内存和[TestFixtureSetUp]
和[TestFixureTearDown]
以清理内存。再次在您的案例对象可以创建一组用户。
[TestFixtureSetUp]
:用TestFixtureSetUp
装饰的功能将执行一次之前执行测试组的执行。
[TestFixtureTearDown]
:用TestFixtureTearDown
装饰的功能将执行一次后执行一组测试。
实施
[TestFixture]
public class Tests
{
[TestFixtureSetUp]
public void Setup()
{
//Create users with credentials
}
[Test]
public void _Test1()
{
//Test_1
}
[Test]
public void _Test2()
{
//Test2
}
[TestFixtureTearDown]
public void CleanUp()
{
//Cleanup; Here you need to add code to Delete all users
}
}
注:我会建议你,如果你想创建和删除用户特定ATP然后用SetUp
和TearDown
去。如果您尝试使用相同的一堆ATP,我会建议您使用TestFixtureSetUp
和TestFixtureTearDown
。
“如果你的测试获得通过或失败,安装和拆卸功能将执行”
参考文献:
我想订阅当你取消或当它完成自然,而在此情况做清理 – bill
如果你在测试之前进行清理运行触发事件处理程序? – Matthew
为什么不能在测试前删除数据?它是你唯一的选择,从调试器取消测试会停止所有执行 –