python - 在 unitttest 中导入时执行两次的函数
问题描述
由于某种原因,函数 all_files_df() 在下面的代码中执行了两次。len(data) 应该是 4,但它返回 8。
我想补充:
if __name__ == '__main__':
unittest.main()
在底部会解决这个问题,但显然我需要做其他事情。请参阅下面的代码...
import unittest
from csv_file_testing import all_files_one_df
class TestCSVMethods(unittest.TestCase):
def test_df_length(self):
data = all_files_one_df()
self.assertEqual(4, len(data))
if __name__ == '__main__':
unittest.main()
单独运行 all_files_one_df() 时,它运行良好并返回 4 行
all_files_one_df() 循环遍历一个文件夹并将 CSV 文件连接到一个数据帧中。在这种情况下,每个 CSV 文件包含 2 行数据。2 个文件 x 2 行 = 总共 4 行
def all_files_one_df():
for file in all_files:
df = pd.read_csv(file, index_col=None, header=0)
li.append(df)
frame = pd.concat(li, axis=0, ignore_index=True)
return frame
解决方案
弄清楚了。问题出在我正在导入的文件上,而不是 unittest 文件本身。
我需要在底部进行更改:
all_files_one_df()
对此:
if __name__ == '__main__':
all_files_one_df()
现在看来很明显了。之前导入文件也在执行它。它需要检查到位以确保它不会
推荐阅读
- angularjs - 如何在angularjs中将数据从控制器传递到mainApp
- css - 使用 npm 和 css 代码设置 bootstrap 4 环境在 chrome 中不起作用
- angular - TS 类型缺少以下属性
- python - Pandas - 当两列中都存在 Nan 时,列比较返回 False
- java - 如何返回向量
来自 jni C++ 函数? - angularjs - 我可以为单个元素添加样式和 ng-style 吗?
- docker - Kubernetes 多服务器通信
- visual-studio-2013 - 使用 rdlc 命中 tablix 异常
- java - Spring Boot 编码过滤器
- opencv - 如何将边界框导出为 .jpg