如何编写Python命令行工具的单元测试

时间:2014-08-22 14:45:57

标签: python unit-testing python-unittest

我正在努力在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的单元测试工具吗?

0 个答案:

没有答案