[英]python unittest - wrong test count
我正在為MOOC編寫一個測試環境,我有以下單元測試類,它檢查一個名為search
的方法的輸出。 我們的想法是使用subTest
迭代幾個輸入(在這種情況下有2個)。
這是我的代碼:
import unittest
import sys
from io import StringIO
import ex1
import ex1sol
class Ex1TestCase(unittest.TestCase):
def setUp(self):
self.orig_stdout = sys.stdout
self.test_lst = [4, 7, 2, 3, 1]
self.nums_to_search = [7, 8]
def tearDown(self):
sys.stdout = self.orig_stdout
def test_1(self):
for n in self.nums_to_search:
with self.subTest(n=n):
# get test output
new_stdout = StringIO()
sys.stdout = new_stdout
ex1.search(self.test_lst, n)
test_output =new_stdout.getvalue().strip()
# get solution output
new_stdout = StringIO()
sys.stdout = new_stdout
ex1sol.search(self.test_lst, n)
sol_output = new_stdout.getvalue().strip()
# compare
self.assertEqual(test_output, sol_output)
if __name__ == '__main__':
unittest.main()
這test_1
- 我有2個測試用例(我在test_1
方法中使用for循環運行。但是,一方面我的控制台輸出是:
Ran 1 test in 0.001s
OK
Process finished with exit code 0
另一方面,pycharm聲稱我通過了3次測試: 我可以認為輸出是因為最終我只運行一個測試方法,但我無法解釋3測試問題。
我的問題:
我來這里谷歌搜索類似的問題,可以回答你的第一個問題:
PyCharm將每個測試方法(此處為test_1
)和每個子測試計為一次測試。 你有一個測試方法,它做兩個子測試( 7
和8
),所以PyCharm顯示3個總測試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.