国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

自定義xunit測試用例的執(zhí)行順序

這篇具有很好參考價值的文章主要介紹了自定義xunit測試用例的執(zhí)行順序。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

有的時候我們會對程序進(jìn)行單元測試, 為了測試的效果以及后期的維護(hù), 我一般會將各個測試拆開, 根據(jù)需要測試的類分到各個類型中, 不過在實(shí)際操作的時候就出現(xiàn)了一些意想不到的問題, 各個測試的執(zhí)行是亂序的, 按照我自己寫測試的習(xí)慣, 假如我需要測試新寫的增刪改查的功能, 我會將增刪改查分開測試, 會按照 新增-->查詢-->修改-->刪除 這樣的順序編寫, 在我的預(yù)想中新增操作應(yīng)當(dāng)是最先執(zhí)行的, 但是在實(shí)際的運(yùn)行過程中完全不是這樣, 隨機(jī)的順序?qū)@樣的測試會有巨大的影響

所以就需要控制測試的執(zhí)行順序

為測試用例排序

一般而言, 我們會將增刪改查全都放在一個測試集中

public class UserInfoTest
{
    [Fact]
    public void AddTest()
    {
    }
    [Fact]
    public void ReadTest()
    {
    }
    [Fact]
    public void UpdateTest()
    {
    }
    [Fact]
    public void DeleteTest()
    {
    }
}

上面就是增刪查改的測試用例, 盡管在寫的時候看起來是按照我所希望的那樣進(jìn)行排序的, 但是在實(shí)際的執(zhí)行過程卻有可能是完全亂序的, 而我需要他們按照上面的順序執(zhí)行

實(shí)現(xiàn)ITestCaseOrderer

Xunit 中有一個 TestCaseOrdererAttribute, 加在測試類上時可以對測試類中包含的測試用例進(jìn)行排序

但若是需要讓 TestCaseOrdererAttribute 起效, 我們還需要實(shí)現(xiàn)一個接口 ITestCaseOrderer

public class TestOrders : ITestCaseOrderer
{
    public IEnumerable<TTestCase> OrderTestCases<TTestCase>(IEnumerable<TTestCase> testCases) where TTestCase : ITestCase
    {
        var result = testCases.ToList();
        return result;
    }
}

通過實(shí)現(xiàn) ITestCaseOrderer 我們可以獲取到測試用例, 之后只需要將測試用例重新進(jìn)行排序, 排序成預(yù)期中需要的順序即可

最簡單的就是根據(jù)名字來進(jìn)行排序, 此時只需要使用 result.OrderBy(item => item.DisplayName) 就差不多可以了

但是為了嚴(yán)謹(jǐn)以及后續(xù)的可維護(hù)性, 最好在做一個新的 Attribute 對需要排序的測試用例進(jìn)行標(biāo)記

新建OrderAttribute

[AttributeUsage(AttributeTargets.Method)]
public class OrderAttribute : Attribute
{
    public int Sort { get; set; }
    public OrderAttribute(int sort)
    {
        this.Sort = sort;
    }
}

OrderAttribute 的構(gòu)成非常簡單, 其中只包含一個 Sort 用來進(jìn)行排序

完善TestOrders的實(shí)現(xiàn)

public class TestOrders : ITestCaseOrderer
{
    public IEnumerable<TTestCase> OrderTestCases<TTestCase>(IEnumerable<TTestCase> testCases) where TTestCase : ITestCase
    {
        var typeName = typeof(OrderAttribute).AssemblyQualifiedName;
        var result = testCases.ToList();
        result.Sort((x, y) =>
        {
            var xOrder = x.TestMethod.Method.GetCustomAttributes(typeName)?.FirstOrDefault();
            if (xOrder == null)
            {
                return 0;
            }
            var yOrder = y.TestMethod.Method.GetCustomAttributes(typeName)?.FirstOrDefault();
            if (yOrder == null)
            {
                return 0;
            }
            var sortX = xOrder.GetNamedArgument<int>("Sort");
            var sortY = yOrder.GetNamedArgument<int>("Sort");
            return sortX - sortY;
        });
        return result;
    }
}

完善 TestOrders 的實(shí)現(xiàn), 使得測試用例可以按照順序進(jìn)行排序

測試用例打標(biāo)

[TestCaseOrderer("TestOrders這個類型所在的namespace.TestOrders", "TestOrders這個類型所在的namespace")]
public class UserInfoTest
{
    [Fact, Order(0)]
    public void AddTest()
    {
    }
    [Fact, Order(1)]
    public void ReadTest()
    {
    }
    [Fact, Order(2)]
    public void UpdateTest()
    {
    }
    [Fact, Order(3)]
    public void DeleteTest()
    {
    }
}

TestCaseOrdererAttribute 接收兩個參數(shù), 一個是可以用來確定之前實(shí)現(xiàn)的 TestOrders 的完整命名空間, 第二個是 TestOrders 所在的命名空間

這兩個參數(shù)主要的功能就是確定 TestOrders 的位置, Xunit會根據(jù)這兩個參數(shù)找到 TestOrders 并且調(diào)用排序的方法

然后在需要進(jìn)行排序的測試用例上使用 [Order] 打標(biāo), 傳入自定義的排序, 然后在我們使用 dotnet test 就會按照傳入的排序執(zhí)行測試用例了文章來源地址http://www.zghlxwxcb.cn/news/detail-745391.html

到了這里,關(guān)于自定義xunit測試用例的執(zhí)行順序的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【測試開發(fā)】測試用例的設(shè)計方法

    【測試開發(fā)】測試用例的設(shè)計方法

    目錄 一. 測試用例的基本要素?? 二. 測試用例的設(shè)計方法 1. 測試用例設(shè)計的萬能公式 水杯測試用例 ?2. 基于需求的設(shè)計方法 郵箱注冊測試用例? ?3. 等價類方法 有效等價類和無效等價類 ?等價類思想設(shè)計測試用例步驟 ?4. 邊界值方法 邊界值思想設(shè)計測試用例步驟 ?5. 判定

    2024年02月16日
    瀏覽(21)
  • 測試用例的設(shè)計思考

    畢業(yè)后的第一家公司個人認(rèn)為除了加班巨多還是很不錯的,我認(rèn)為前司對于測試的流程和規(guī)范是非常棒的,對于測試用例的設(shè)計和評審都會有較高的要求。在前司的一年確實(shí)學(xué)到很多和測試流程和測試設(shè)計相關(guān)的知識。以下為自己的經(jīng)驗(yàn)之談,就是在一個模塊到我手里的時候

    2024年02月10日
    瀏覽(21)
  • 如何評估測試用例的質(zhì)量

    評估測試用例的質(zhì)量是確保測試有效性和準(zhǔn)確性的關(guān)鍵步驟。以下是一些評估測試用例質(zhì)量的方法: 1.完整性 評估測試用例是否涵蓋了需求和功能的所有方面。檢查用例是否覆蓋了各種場景、邊界值和異常情況,以確保測試的全面性和完整性。 2.可讀性 評估測試用例的可讀

    2024年02月12日
    瀏覽(19)
  • 如何提高測試用例的編寫效率?

    如何提高測試用例的編寫效率?

    ???????? 1、提高測試覆蓋率 ????????我們通過對測試用例的評審,進(jìn)一步完善測試覆蓋率。在評審過程中,不同的評審專家看待問題的角度不完全一致,因此我們需要充分考慮測試方法,擴(kuò)充測試用例的全面性,確?;竟δ芎秃诵墓δ艿母采w率。 如何提高測試用例

    2024年02月08日
    瀏覽(31)
  • 測試用例是什么?怎么寫?不會測試用例的三分鐘教會你

    測試用例是什么?怎么寫?不會測試用例的三分鐘教會你

    今天筆者想和大家來聊聊測試用例,這篇文章主要是想要寫給測試小伙伴們的,因?yàn)槲野l(fā)現(xiàn)還是有很多小伙伴在遇到寫測試用例的時候無從下手,我就想和大家簡單的聊聊,這篇文章主要是針對功能測試的喲。 ?在這篇文章的后面筆者給大家準(zhǔn)備一份驚喜喲~? ? ?↓ 測試用例

    2024年02月03日
    瀏覽(26)
  • 測試工程師都是怎么寫測試用例的??

    測試工程師都是怎么寫測試用例的??

    很多人不知道寫測試用例有什么用,而僅僅是像工具人一樣,在每次提測之前,把測試用例照著需求文檔抄一遍,仿佛像是走個過場。 開發(fā)提測之后,就照著測試用例點(diǎn)點(diǎn)點(diǎn),可能一天就走完用例了,開發(fā)代碼寫得真好,測試用例執(zhí)行完畢都沒有測出bug,然后美其名曰:測試

    2024年02月05日
    瀏覽(24)
  • 編寫測試用例的方法,這個是真的很好用

    編寫測試用例的方法,這個是真的很好用

    大家測試過程中經(jīng)常用的等價類劃分、邊界值分析、場景法等,并不能覆蓋所有的需求,我們之前講過很少用到的因果圖法,下面就來講另一種不經(jīng)常用到但又非常重要的測試用例編寫方法——測試大綱法。 測試大綱法適用于有多個窗口,每個窗口有多個動作,每個動作之間

    2024年02月16日
    瀏覽(20)
  • 軟件測試|詳解 Pytest 參數(shù)化:簡化測試用例的編寫

    軟件測試|詳解 Pytest 參數(shù)化:簡化測試用例的編寫

    簡介 Pytest 是一個廣泛使用的 Python 測試框架,它提供了豐富的功能來編寫和執(zhí)行測試用例。其中一個強(qiáng)大的特性是參數(shù)化,它允許我們通過一種簡潔的方式運(yùn)行多個輸入?yún)?shù)的相似測試用例,從而減少冗余的代碼。本文將詳細(xì)介紹 Pytest 的參數(shù)化功能以及如何使用它來簡化測

    2024年01月20日
    瀏覽(29)
  • ChatGPT助力測試領(lǐng)域!探索人工智能編寫測試用例的新前景

    ChatGPT助力測試領(lǐng)域!探索人工智能編寫測試用例的新前景

    簡介 測試用例是測試人員的核心工作內(nèi)容,是測試人員思想的“實(shí)現(xiàn)類”,其充分體現(xiàn)了測試的思路,可以為后續(xù)的測試行為提供指導(dǎo),是測試人員了解業(yè)務(wù)的重要根據(jù)和質(zhì)量之根本。如果測試用例設(shè)計得不完成,出現(xiàn)了遺漏,那么通常是會出現(xiàn)大家不想看到的后果,如漏測

    2024年04月28日
    瀏覽(21)
  • 自動化數(shù)據(jù)驅(qū)動|Easy POI讀取接口測試用例的excel

    自動化數(shù)據(jù)驅(qū)動|Easy POI讀取接口測試用例的excel

    在做的接口自動化測試中,把測試用例維護(hù)在excel表格中,通過Easy POI把用例中的行轉(zhuǎn)成實(shí)體類對象,再通過testNG的@DataProvider注解把測試用例數(shù)據(jù)傳遞給測試方法執(zhí)行用例。 2.1 用例表格示例 2.2 實(shí)體類設(shè)計 easy poi: 通過@Excel屬性能夠和excel的表頭映射上去 ??值的注意:實(shí)體

    2024年01月23日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包