'Nunit Test Order - Single Test - Multiple Orders
For Nunit Test order, is it possible to have multiple order positions for a test, such as [Test, Order(3, 10, #...)]?
Scenario - I am automating a multi-page online application using end-to-end ordered tests (with Asserts verifying entered info), and I want to verify info on previous pages is still there - saved - when I click Back button (basically, reverse-check the end-to-end starting from last page of application using Back button to navigate). I want to reuse Asserts already there instead of rewriting the same ones again. I have tried the following as an experiment, which generate build error CS1729 - 'type' does not contain a constructor that takes 'number' arguments: [Test, Order(66, 67)] ** [Test, Order(66)(67)] ** [Test, Order(66), Order(67)] ** [Test, Order(66)] [Test, Order(67)]
I Googled this, and I don't see anything that does the above, so I assume it is not possible, but want to confirm. I cannot remove the Order attribute as that's part of the requirement for this test.
Solution 1:[1]
No, that's not possible. The OrderAttribute sets a property, which is a simple integer.
To simulate the effect you want, you may do the following:
- Extract all the code of the test in question to a separate method, called by the test. It should have the same signature as the test.
- Replicate the test you want to repeat, using a different name.
- Assign a different order attribute to each test.
Assuming a signature of void TestMethod() it will look something like this...
[Test, Order(66)]
public void MyTest66()
{
MyRealTest();
}
[Test, Order(67)]
public void MyTest67()
{
MyRealTest();
}
private void MyRealTest()
{
// Your actual test code goes here
}
Note... this is a really ugly hack but the only guaranteed way I can think of to do what you indicate is required.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Charlie |
