我正在编写一个python代码,它将为另一个程序编写输入文件。我有一个测试套件,并且我发现测试有时会失败,因为写入的字符串可能缺少字符,或者使用“ e”而不是“ E”表示浮点数。但是这些失败似乎是随机发生的。
我不知道如何解决此问题,我在Google周围搜索,似乎找不到与我的问题相符的结果。
这是两次单元测试的结果,它们之间没有代码更改:
..................................................................................
----------------------------------------------------------------------
Ran 82 tests in 0.019s
OK
然后以diff输出的形式出现故障(空格用`代替):
< Begin feti equation solver feti
< End feti equation solver feti
---
> Begin feti equation_solver feti
> End feti equation_solver feti
和
< tolerance = 1E-06
---
> tolerance = 1e-06
这是一个写这些段落的写方法:
def write(self,f,indent):
# if this term is not active do not write anything
if not self._active:
return()
line = " " * indent
for idx,item in enumerate(self._my_values):
if item is None:
continue
if idx != 0:
line+=" "
if self._use_symbol and idx == self._symbol_location:
line += self._symbol+" "
line += str(item)
line += "\n"
f.write(line)
_my_values是字符串,整数或浮点数的列表。 _symbol是一个字符串,通常是一个“ =”。
我希望它能使测试表现一致。尽管“ e”与“ E”不是什么大问题,但下划线的变化确实是。
谢谢您的帮助。