运行特定的参数化鼻子测试

时间:2017-02-17 17:56:57

标签: python unit-testing integration-testing nose

目前使用nose_parameterized运行大量集成测试。在寻求部署到生产或类似的东西时,这非常有效。缺点是我们现在处于足够的测试阶段,需要花费一定的时间才能运行(想想30秒左右)

当我们编写新的测试/代码时,它通常会键入一个新参数。我想知道是否可以说在测试时我们只想运行带有某些参数的测试来缩短开发时间。为了更具体一点:

class TestParsers(unittest.TestCase):
    @parameterized.expand(create_parameters())
    def test_scrape(self, parser, url, attr, value):
        # Runs test

def create_parameters():
    return json.dumps(open('tests.json'))

假设tests.json看起来像这样:

[["a", 1, 2], ["a", 2, 3], ["b", 1, 2], ["b", 3, 4]]

工作流程是,当我处理新功能时,我添加了以b开头的测试用例。我想知道是否有像nosetests --runonly=b这样的命令行参数,以限制运行测试的时间。

评论其他测试的hacky解决方案在这里并不是一个好的解决方案,特别是因为我们实际上是从多个文件的组合中创建参数。

1 个答案:

答案 0 :(得分:0)

据我所知,您的问题没有开箱即用的解决方案,但也许您可以查看@attr

http://nose.readthedocs.io/en/latest/plugins/attrib.html