簡體   English   中英

如何讓 Pycharm 從測試文件夾遞歸運行所有 python 單元測試

[英]How to make Pycharm run all python unit tests recursively from tests folder

我來自 Java 背景,所以我將我的單元測試組織成獨立的並行測試層次結構,以反映我的主要項目的結構。 我使用 PyCharm 代替 Intellij 或 Eclipse。 在這兩個 I IDE 中,我可以選擇任何被測包並在該命名空間下遞歸運行所有單元測試。

測試結構

+ tests
    + billing
        +  supplier
            + ClassName_tests.py - file
                - TestClassName  - class
                    - test_one() - functions
                    - test_two() - functions
    + config
        ...
    + invoicing
        ...

這可以用 Python 和/或 PyCharm 實現嗎? 目前我需要單獨運行每個命名空間/模塊的測試我是否必須在 PyCharm 或 Python 中定義一些東西。

我已經閱讀並嘗試了這個設置,但它運行了所選文件夾中的所有測試,而不是遞歸的。 如何強制 Pycharm 運行所有單元測試?

我來自 Java 背景,所以我將我的單元測試組織成獨立的並行測試層次結構,以反映我的主項目的結構。 我使用 PyCharm 代替 Intellij 或 Eclipse。 在這兩個 I IDE 中,我可以選擇任何被測包並在該命名空間下遞歸運行所有單元測試。

測試結構

+ tests
    + billing
        +  supplier
            + ClassName_tests.py - file
                - TestClassName  - class
                    - test_one() - functions
                    - test_two() - functions
    + config
        ...
    + invoicing
        ...

這可以用 Python 和/或 PyCharm 實現嗎? 目前我需要單獨運行每個命名空間/模塊的測試我是否必須在 PyCharm 或 Python 中定義一些東西。

我已經閱讀並嘗試了這個設置,但它運行了所選文件夾中的所有測試,而不是遞歸的。 如何強制 Pycharm 運行所有單元測試?

我來自 Java 背景,所以我將我的單元測試組織成獨立的並行測試層次結構,以反映我的主項目的結構。 我使用 PyCharm 代替 Intellij 或 Eclipse。 在這兩個 I IDE 中,我可以選擇任何被測包並在該命名空間下遞歸運行所有單元測試。

測試結構

+ tests
    + billing
        +  supplier
            + ClassName_tests.py - file
                - TestClassName  - class
                    - test_one() - functions
                    - test_two() - functions
    + config
        ...
    + invoicing
        ...

這可以用 Python 和/或 PyCharm 實現嗎? 目前我需要單獨運行每個命名空間/模塊的測試我是否必須在 PyCharm 或 Python 中定義一些東西。

我已經閱讀並嘗試了這個設置,但它運行了所選文件夾中的所有測試,而不是遞歸的。 如何強制 Pycharm 運行所有單元測試?

我來自 Java 背景,所以我將我的單元測試組織成獨立的並行測試層次結構,以反映我的主項目的結構。 我使用 PyCharm 代替 Intellij 或 Eclipse。 在這兩個 I IDE 中,我可以選擇任何被測包並在該命名空間下遞歸運行所有單元測試。

測試結構

+ tests
    + billing
        +  supplier
            + ClassName_tests.py - file
                - TestClassName  - class
                    - test_one() - functions
                    - test_two() - functions
    + config
        ...
    + invoicing
        ...

這可以用 Python 和/或 PyCharm 實現嗎? 目前我需要單獨運行每個命名空間/模塊的測試我是否必須在 PyCharm 或 Python 中定義一些東西。

我已經閱讀並嘗試了這個設置,但它運行了所選文件夾中的所有測試,而不是遞歸的。 如何強制 Pycharm 運行所有單元測試?

只是在這里發布一個答案,因為我在這個問題上堅持了一段時間......這里的每個其他答案都圍繞着這個主題跳舞,但你的案例的解決方案相對簡單:

當 Pycharm 在目錄中發現測試時,它將子目錄視為要發現測試的模塊

這意味着如果您希望這些文件夾可被發現,則這些文件夾需要包含一個__init__.py文件。

換句話說:

你的例子:

+ tests
    + billing
        +  supplier
            + ClassName_tests.py - file
           
    + ... (omitted the rest for brevity)

應該變成:

+ tests
    + billing
        - __init__.py
        +  supplier
            - __init__.py
            - ClassName_tests.py - file
           
    + ...

之后,右鍵單擊“tests”目錄並運行其中的所有測試應該會運行所有測試,包括子文件夾中的測試,但僅適用於可以視為模塊的子文件夾(例如包含__init__.py文件)

我來自 Java 背景,所以我將我的單元測試組織成獨立的並行測試層次結構,以反映我的主項目的結構。 我使用 PyCharm 代替 Intellij 或 Eclipse。 在這兩個 I IDE 中,我可以選擇任何被測包並在該命名空間下遞歸運行所有單元測試。

測試結構

+ tests
    + billing
        +  supplier
            + ClassName_tests.py - file
                - TestClassName  - class
                    - test_one() - functions
                    - test_two() - functions
    + config
        ...
    + invoicing
        ...

這可以用 Python 和/或 PyCharm 實現嗎? 目前我需要單獨運行每個命名空間/模塊的測試我是否必須在 PyCharm 或 Python 中定義一些東西。

我已經閱讀並嘗試了這個設置,但它運行了所選文件夾中的所有測試,而不是遞歸的。 如何強制 Pycharm 運行所有單元測試?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM