我正在努力在Python项目上获得更好的代码覆盖率,但我还没有找到关于如何测试命令行工具的好例子。这是我的代码:
https://github.com/OpenDataAlex/etlTest/blob/dev/etltest/etlTest.py
我会在帖子中包含代码,但我并不想发布一个代码段。我正在构建一个运行项目其他组件的命令行工具。
我写的测试类似于以下示例:
def test_in_file_custom_output_generation_output(self):
file_param = "-f {0:s}".format(self.in_file)
output_file = os.path.join(SettingsManager().get_file_location(),
'etltest/samples/output/main/in_file_generation.txt')
given_result = subprocess.check_output(args=['python', self.process, file_param, "-g"])
with open(output_file, 'r') as f:
expected_result = f.read()
self.assertEqual(given_result, expected_result)
def test_parser_no_args(self):
#Test if no args returns help options.
subprocess.check_output(args=['python', self.process], stderr=subprocess.STDOUT)
我仍然很乐意为这样的项目编写测试,并希望得到一些指导。我应该使用Python的单元测试工具吗?