我正在开发一组python脚本来预处理数据集,然后使用scikit-learn生成一系列机器学习模型。我想开发一组单元测试来检查数据预处理功能,并希望能够使用一个小的测试pandas框架,我可以确定答案并在assert语句中使用它。
我似乎无法让它加载dataframe并使用self将其传递给单元测试。我的代码看起来像这样;
def setUp(self):
TEST_INPUT_DIR = 'data/'
test_file_name = 'testdata.csv'
try:
data = pd.read_csv(INPUT_DIR + test_file_name,
sep = ',',
header = 0)
except IOError:
print 'cannot open file'
self.fixture = data
def tearDown(self):
del self.fixture
def test1(self):
self.assertEqual(somefunction(self.fixture), somevalue)
if __name__ == '__main__':
unittest.main()
谢谢你的帮助
3条答案
按热度按时间v09wglhw1#
Pandas有一些用于测试的实用程序。
sqserrrh2#
如果你使用的是最新的pandas,我认为下面的方法更简洁:
如果这些函数不“相等”,则它们中的每一个都将引发
AssertionError
。有关更多信息和选项:https://pandas.pydata.org/docs/reference/testing.html
x8diyxa73#
你也可以用
snapshottest
做类似的事情。https://stackoverflow.com/a/64070787/3384609