我有一個 NUnit 測驗專案,它有兩個[TextFixture]s。
我希望其中一個在另一個之前運行,因為它處理檔案創建。他們目前以錯誤的順序運行。
鑒于我無法更改[Test]s 或將它們分組為單個單元測驗,有沒有辦法可以控制測驗夾具的運行順序?
我試過[Order(int num)]屬性,也試過創建一個新的播放串列。
他們兩個都沒有作業。
C#、.NET 框架、NUnit 測驗框架、Windows。
uj5u.com熱心網友回復:
的檔案[OrderAttribute]指出燈具的訂購適用于包含的命名空間。
確保您的夾具在同一命名空間內,并且您已[OrderAttribute]在測驗夾具級別應用:
namespace SameNamespace {
[TestFixture, Order(1)]
public class MyFirstFixture
{
/* ... */ }
}
[TestFixture, Order(2)]
public class MySecondFixture
{
/* ... */ }
}
}
此外,重要的是要記住 while MyFirstFixturewill run before MySecondFixture,內部測驗的順序是測驗裝置本地的。
在完成所有測驗后[Order(1)],MySecondFixture將運行帶有in的測驗。MyFirstFixture
重要提示:檔案也不保證訂購。
測驗不會等待先前的測驗完成。如果正在使用多個執行緒,則可能會在一些較早的測驗仍在運行的同時啟動測驗。
無論如何,測驗應該遵循由 Robert C. Martin 在他的書“Clean Code”中介紹的 FIRST 測驗原則。
在我的第一位。代表孤立的,這意味著測驗不應該相互依賴,每個測驗都應該負責正確執行所需的設定。
盡最大努力把最終測驗合并成一個,如果他們正在測驗一兩件事,或改寫其中的一段代碼被測驗1測驗的方式你的邏輯,可以測驗隔離從一段代碼通過測驗2進行測驗。
這也會產生遵守SRP的更清晰代碼的副作用。
雙贏局面。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/316774.html
