python - 为什么只有部分内容被写入 python 中的文件?
问题描述
我是 python 新手,一直在使用单元测试来测试程序中的方法。我一直在使用https://docs.python.org/3/tutorial/inputoutput.html作为读取和写入文件的参考。我不明白为什么在我的单元测试中只有一些内容被写入文件。
我当前的单元测试文件:
class Test_test_States(unittest.TestCase):
def setUp(self):
self.test_case_number = 1
self.file = open('Test_States_Results.txt', 'w')
self.file.write('---Test States Results---\n')
self.file.write('Test Case\tInput\t\tExpected Output\t\tResult\n')
self.file.write('----------------------------------------------------------------\n')
def tearDown(self):
self.file.close()
#Unit testing the States Display method
def test_States_Display_States(self):
current_states = States()
file_path = 'pda.def'
# Write the test case number
self.file.write(' ' + str(self.test_case_number) + '\t')
current_states.load(file_path)
# Write the Input
self.file.write(str(current_states.states) + '\t\t')
# Write the Expected Output
self.file.write('STATES: s0 s1 s2\t\t')
display = current_states.display_states()
try:
self.assertEqual(display, 'STATES: s0 s1 s2')
# Write the pass results
self.file.write('Passed\n')
except AssertionError:
# Write the fail results
self.file.write('Failed\n')
# Increment test case number
self.test_case_number += 1
我正在写的内容setUp
被写入文件;但是,我试图在我的test_States_Display_States
方法中写入文件的内容没有被写入文件。我不明白为什么没有将内容写入文件。
我将如何在我的test_States_Display_States
方法中正确写入文件?
解决方案
我试过了,它只用一个测试用例就可以按预期工作。如果你的文件中有其他测试,你不想要setUp
,你想要setUpClass
. setUp
并tearDown
在每个测试用例之前和之后调用一次。setUpClass
并tearDownClass
在整个测试之前和之后调用一次。这setUp
意味着每次它都会覆盖文件中的内容。它应该是这样的:
@classmethod
def setUpClass(cls):
cls.test_case_number = 1
cls.file = open('Test_States_Results.txt', 'w')
cls.file.write('---Test States Results---\n')
cls.file.write('Test Case\tInput\t\tExpected Output\t\tResult\n')
cls.file.write('----------------------------------------------------------------\n')
@classmethod
def tearDownClass(cls):
cls.file.close()
推荐阅读
- apache-spark - 比较不等于比较列列表的 Spark 数据帧
- html - 如何将具有 Z-Index 的内容居中
- python - Use query parameter like "?name=" from url in a template
- javascript - 从 chrome 扩展调用 API 的问题
- excel - 宏变得混淆区分 ActiveWorkbook 和 ThisWorkbook
- angular7 - 输入框 1 或输入框 2 和输入框 3 的验证如何进行
- ios - 如何让用户在保存时自定义文件名?
- python - 如何:“将 QPoint 位置更改为 QpointF”
- python - 如何在python中拟合数据对数?
- python - 如何将元素从数组传递到查询