我有以下代码:
File1.cs包含:
namespace TestsNM
{
[SetUpFixture]
public class MySetUpClass
{
[SetUp]
public void RunBeforeAnyTests()
{
//....
}
[TearDown]
public void RunAfterAnyTests()
{
//...
}
}
}
File2.cs包含:
namespace TestsNM
{
[TestFixture]
public class LoginTest : MySetUpClass
{
[Test]
public void LoginInValid()
{
//...
}
[Test]
public void LoginValid()
{
//...
}
}
}
File3.cs包含:
namespace TestsNM
{
[TestFixture]
public class AddTest : MySetUpClass
{
[Test]
public void Execute1()
{
//...
}
[Test]
public void Execute2()
{
//...
}
}
}
File4.cs包含:
namespace TestsNM
{
public class Tests
{
[Suite]
public static IEnumerable Suite
{
get
{
return GetSuite();
}
}
static ArrayList GetSuite()
{
ArrayList suite = new ArrayList();
suite.Add(new LoginTest());
suite.Add(new AddTest());
return suite;
}
}
}
在Main()中:
string[] my_args = { "/fixture=" + typeof(Tests), Assembly.GetExecutingAssembly().Location };
int returnCode = NUnit.ConsoleRunner.Runner.Main(my_args);
当我运行它时,MySetUpClass正在每次测试之前和之后执行。如何让所有TestFixtures前后运行一次?
答案 0 :(得分:1)
您必须将代码[SetUp]
更改为[TestFixtureSetUp]
,将[TearDown]
更改为[TestFixtureTearDown]
。
答案 1 :(得分:0)
那没有用。我想要的是以下输出:#run RunBeforeAnyTests()#run所有测试在TestFixture类-LogitTest中。 #run all TestFixture class-AddTest中的测试。 #run RunAfterAnyTests()我通过在类测试中放入[TestFixtureSetUp]和[TestFixtureTearDown]来实现这一点。 public class Tests {[TestFixtureSetUp] public void Setup(); [TestFixtureTearDown] public void Teardown(); [套房]公共静态IEnumerable套房; }
还取出了基类-MySetUpClass。