Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 nose不会使用load_测试发现单元测试_Python 2.7_Nose - Fatal编程技术网

Python 2.7 nose不会使用load_测试发现单元测试

Python 2.7 nose不会使用load_测试发现单元测试,python-2.7,nose,Python 2.7,Nose,Python 2.7.1 鼻1.1.2 我已经阅读了有关这方面的相关问题,但它们没有帮助。我有如下的测试用例 例如在my_tests.py def load_tests(loader, tests, pattern): return unittest.TestSuite(MyTest() for scenario_name in list) 我使用load_tests方法有几个这样的模块,我使用unittest运行它们,如下所示 test_loader = unittest.defau

Python 2.7.1 鼻1.1.2

我已经阅读了有关这方面的相关问题,但它们没有帮助。我有如下的测试用例

例如在
my_tests.py

def load_tests(loader, tests, pattern):
    return unittest.TestSuite(MyTest() for scenario_name in list)
我使用load_tests方法有几个这样的模块,我使用unittest运行它们,如下所示

test_loader = unittest.defaultTestLoader.discover( '.', my_pattern_var); 
test_runner = unittest.TextTestRunner();
result = test_runner.run(test_loader)
sys.exit(not result.wasSuccessful())
如果我将其替换为等效的nose代码
nose.main()
,它将找到0个测试

问题

  • 如何让鼻子发现测试而不实际失去使用python unittest运行测试的能力。我想使用NOSE作为python unittest的插件来获取clover和coverage报告
  • 如何让它运行只匹配特定模式的测试

  • 很抱歉回来这么晚。我们基本上做了与您在控制台脚本中尝试做的相同的事情,只是我们将所有测试模块命名为integration_foo.py。无论如何,解决方案很简单,只需通过编程运行nose即可

    import re
    from nose.config import Config
    
    TEST_REGEX = '(?:^|[\\b_\\./-])[Ll]oad'
    
    # Change the test match pattern
    nose_config = Config()
    nose_config.testMatch = re.compile(TEST_REGEX)
    
    # Specify the use of a Plugin Manager, load plugins
    nose_config.plugins = BuiltinPluginManager()
    nose_config.plugins.loadPlugins()
    
    run(config=nose_config)
    
    因此,这个基本选项将nose正在寻找的正则表达式模式从标记为test的所有方法更改为标记为load的所有方法。然而,这并不是运行nose所需要的,还需要获得某种解析器对象或向nose传递一组特定的argv

    如果您想传递一组特定的argv以供nose解析,只需执行以下操作

    run(config=nose_config, argv=["foo", "bar"])
    
    否则,您可能可以在命令行中指定特定于nose的参数,只要您不加入任何funky nose不应该出错的内容


    请查看nose的源代码,我从中获得了撰写此文章所需的所有信息

    这个问题现在是否与您相关?请回答。我希望能够找到使用load_测试方法创建的鼻子测试。