gpt4 book ai didi

python - 为什么Python中只将部分内容写入文件?

转载 作者:行者123 更新时间:2023-12-01 01:30:35 24 4
gpt4 key购买 nike

我是 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,而是需要 setUpClasssetUptearDown 在每个测试用例之前和之后调用一次。 setUpClasstearDownClass 在整个测试之前和之后调用一次。将其设置为 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()

关于python - 为什么Python中只将部分内容写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52912906/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com