這是我正在尋找的模型:
def is_even(a, b):
"""Returns True if both numbers are even.
@AutoUnitTestTag:
- (0,2) -> True
- (2,1) -> False
- (3,5) -> False
"""
return (a % 2 == 0 and b % 2 == 0)
是否有一種工具可以允許人們在函式的檔案字串中插入緊湊的語法定義單元測驗,然后自動生成unittest_foobar.py單元測驗例程?
我幾乎可以肯定我前一段時間看過這個,但找不到它。
編輯:@mkrieger1doctest在下面的評論中建議,在玩了一會兒之后,我會說這是一個非常合適的解決方案。但是,為了收集更多建議,尤其是關于更復雜工具的建議,我想讓這個問題停留更長時間。
如果有人感興趣,以下是在我的示例案例中使用 doctest 的方式:
- 檔案中的格式化函式
is_even.py如下:
def is_even(a,b):
"""Returns True if both numbers are even.
>>> is_even(0,2)
True
>>> is_even(2,1)
False
>>> is_even(3,5)
False
"""
return (a % 2 == 0 and b % 2 == 0)
- 然后運行命令
python3 -m doctest is_even.py。輸出將如下所示:
Trying:
is_even(0,2)
Expecting:
True
ok
Trying:
is_even(2,1)
Expecting:
False
ok
Trying:
is_even(3,5)
Expecting:
False
ok
1 items had no tests:
foo2
1 items passed all tests:
3 tests in foo2.is_even
3 tests in 2 items.
3 passed and 0 failed.
Test passed.
uj5u.com熱心網友回復:
它被稱為doctest,它是標準庫的一部分。但是你必須稍微改變你的語法:
def is_even(a, b):
"""Returns True if both numbers are even.
>>> is_even(0, 2)
True
>>> is_even(2, 1)
False
>>> is_even(3, 5)
False
"""
return (a % 2 == 0 and b % 2 == 0)
您可以使用以下命令運行它:
python -m doctest is_even.py
語法的設計使您可以從互動式 (C)Python 解釋器會話中復制和粘貼測驗,因此有充分的理由不嘗試更改它。此外,其他 Python 開發人員已經熟悉這種語法,而不是您可能想出的任何自定義。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/484656.html
