如何定义单元测试的不同顺序?

DjN*_*wma 2 c# selenium unit-testing

我有这 3 个测试:

using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System;
using System.Threading;

namespace FirstTestCase
{
class _04_02_Media
{

    class NUnitTest
    {
[TestCase(TestName = "04_02_01_Libraries_Add_OnDemand_Video")]
                public void Libraries()
                {}
    [TestCase(TestName = "04_02_02_Replace_OnDemand")]
                public void OnDemandReplace()
                {}
    [TestCase(TestName = "04_02_03_Delete_OnDemand")]
                public void OnDemandDelete()
                {}
Run Code Online (Sandbox Code Playgroud)

由于某种原因,我无法理解并且让我发疯,“删除”测试,应该是最后一个测试,发生在第二个。这是一件大事,因为最后发生的“替换”测试使用已删除的视频。

为什么要按这个顺序运行呢?我还应该使用其他什么来更改订单吗?

Dav*_*idG 5

您可以使用该Order属性来指定顺序:

[Order(1)]
public void Test1() { /* ... */ }

[Order(2)]
public void Test2() { /* ... */ }

[Order(3)]
public void Test3() { /* ... */ }
Run Code Online (Sandbox Code Playgroud)

但是,您确实应该尝试确保您的测试是独立的,否则它们可能会非常脆弱。

  • 最后一行应该是粗体;) (4认同)