在 pycharm 中测试程序时测试字符未打印
Testing characters not getting printed when testing a program in pycharm
我正在学习 python 《Python 速成课程》一书。
现在我已经读到第 11 章“测试您的代码”,我有一个问题。
作者在书中留下了以下注释:
当测试用例为运行ning时,Python按原样为每个单元测试打印一个字符
完全的。通过的测试打印一个点,导致错误的测试打印一个 E,并且
导致断言失败的测试会打印出 F。这就是为什么您会看到不同的结果
运行 测试用例时输出第一行的点数和字符数。
如果一个测试用例需要很长时间运行因为它包含很多单元测试,你可以
查看这些结果,了解有多少测试通过了。
我用的是Pycharm,测试的时候Pycharm没有提示作者说的那些点
如果你能帮我解决我的问题,我将不胜感激
我也将 运行ning 的代码留在这里,因为我认为它可能有帮助
from survey import AnonymousSurvey
class TestAnonymousSurvey(unittest.TestCase):
"""Tests for the class AnonymousSurvey."""
def setUp(self):
"""
Create a survey and a set of responses for use in all test methods
"""
question = "What language did you first learn?"
self.my_survey = AnonymousSurvey(question)
self.responses = ['Arabic', 'Farsi', "English"]
def test_store_single_response(self):
"""Test that a single response gets stored correctly."""
self.my_survey.store_response(self.responses[0])
self.assertIn(self.responses[0], self.my_survey.responses)
def test_store_three_responses(self):
"""Test that a set of three responses is stored correctly."""
for response in self.responses:
self.my_survey.store_response(response)
for response in self.responses:
self.assertIn(response, self.my_survey.responses)```
**Thanks!**
unittest
使用的默认测试运行程序 TextTestRunner
,默认将其进度输出打印到 stderr
,因此不会被 PyCharm 捕获。
我正在学习 python 《Python 速成课程》一书。
现在我已经读到第 11 章“测试您的代码”,我有一个问题。 作者在书中留下了以下注释:
当测试用例为运行ning时,Python按原样为每个单元测试打印一个字符 完全的。通过的测试打印一个点,导致错误的测试打印一个 E,并且 导致断言失败的测试会打印出 F。这就是为什么您会看到不同的结果 运行 测试用例时输出第一行的点数和字符数。 如果一个测试用例需要很长时间运行因为它包含很多单元测试,你可以 查看这些结果,了解有多少测试通过了。
我用的是Pycharm,测试的时候Pycharm没有提示作者说的那些点
如果你能帮我解决我的问题,我将不胜感激
我也将 运行ning 的代码留在这里,因为我认为它可能有帮助
from survey import AnonymousSurvey
class TestAnonymousSurvey(unittest.TestCase):
"""Tests for the class AnonymousSurvey."""
def setUp(self):
"""
Create a survey and a set of responses for use in all test methods
"""
question = "What language did you first learn?"
self.my_survey = AnonymousSurvey(question)
self.responses = ['Arabic', 'Farsi', "English"]
def test_store_single_response(self):
"""Test that a single response gets stored correctly."""
self.my_survey.store_response(self.responses[0])
self.assertIn(self.responses[0], self.my_survey.responses)
def test_store_three_responses(self):
"""Test that a set of three responses is stored correctly."""
for response in self.responses:
self.my_survey.store_response(response)
for response in self.responses:
self.assertIn(response, self.my_survey.responses)```
**Thanks!**
unittest
使用的默认测试运行程序 TextTestRunner
,默认将其进度输出打印到 stderr
,因此不会被 PyCharm 捕获。