我想建立一个针对selenium ui自动化的nunit项目。我想在运行所有测试(所有测试)之前登录该站点,并在运行所有测试(所有测试)之后关闭浏览器。
我无法使用SetUp,因为它与灯具有关,我想在所有事情之前和之后都这样做。
你知道执行者吗?
我熟悉SetUp和TearDown属性。 让我再解释一下。
我需要在所有灯具的所有测试开始之前执行一些逻辑(AKA - 整个装配中的第一次测试)以及在所有灯具的所有测试结束后执行的一些逻辑(AKA - 整个装配中的最后一次测试) )。
答案 0 :(得分:23)
如果所有测试装置都在同一名称空间内,那么您可以使用[SetUpFixture]
属性将类标记为全局设置和拆卸。然后,您可以将所有登录/注销功能放在那里。
NUNIT 2.x
namespace MyNamespace.Tests
{
using System;
using NUnit.Framework;
[SetUpFixture]
public class TestsSetupClass
{
[SetUp]
GlobalSetup()
{
// Do login here.
}
[TearDown]
GlobalTeardown()
{
// Do logout here
}
}
}
请参阅: http://www.nunit.org/index.php?p=setupFixture&r=2.4
NUNIT 3.x
namespace MyNamespace.Tests
{
using System;
using NUnit.Framework;
[SetUpFixture]
public class TestsSetupClass
{
[OneTimeSetUp]
GlobalSetup()
{
// Do login here.
}
[OneTimeTearDown]
GlobalTeardown()
{
// Do logout here
}
}
}
请参阅: https://github.com/nunit/docs/wiki/SetUpFixture-Attribute
答案 1 :(得分:8)
不确定。这就是[TestSetUp]
和[TearDown]
属性的用途。不要将它们与[TestFixtureSetUp]
和[TestFixtureTearDown]
混淆,它们在第一次测试之前和之后执行。
答案 2 :(得分:3)
在执行每个测试用例之前[SetUp]
部分将执行
完成每个测试用例的执行后[TearDown]
部分将被执行。
如果我们想要初始化变量,我们经常在[SetUp]
部分写一个像构造函数
如果我们想要处理我们经常写在[TearDown]
部分
[SetUp]
protected void SetUp()
{
//initialize objects
}
[TearDown]
public void TearDown()
{
//dispose objects
}
答案 3 :(得分:1)
nunit
中最接近的是SetupFixture属性,它允许您标记类以对命名空间中的所有测试装置进行设置/拆卸;
SetUpFixture中的SetUp方法在其命名空间中包含的任何fixture之前执行一次。在所有灯具完成执行后,TearDown方法执行一次。