使用nose testconfig传递URL以进行测试

时间:2016-05-23 11:45:48

标签: python selenium nose

有没有办法配置test-config,以便我可以在命令行中传递一个URL,即'nosetests --tc = systest_url test_suit.py'

我需要在对teamcity执行构建时针对开发和系统环境运行我的selenium测试。我们的团队决定使用python进行UI测试,而且我更像是一个Java人员,我想弄清楚插件是如何工作的,看起来我可以在yaml中存储url并将文件传递给--tc命令但是没有'似乎工作

我继承的代码如下所示:

URL = config['test' : 'https://www.google.com', ]


class BaseTestCase(unittest.TestCase, Navigation):
    @classmethod
    def setUpClass(cls):
        cls.driver = webdriver.Firefox()
        cls.driver.implicitly_wait(5)
        cls.driver.maximize_window()

        cls.driver.get(URL)

显然不起作用

2 个答案:

答案 0 :(得分:2)

有一个针对鼻子的插件nosetest-config。您可以指定一些配置文件,并将文件名从鼻子传递给--tc-file arg。

<强>的config.ini

[myapp_servers]
main_server = 10.1.1.1
secondary_server = 10.1.1.2

在测试文件中,您可以加载配置。

<强> test_app.py

from testconfig import config

def test_foo():
     main_server = config['myapp_servers']['main_server']

比,用args打电话给鼻子

nosetests -s --tc-file example_cfg.ini

如文档中所述,您可以使用其他配置文件类型,如YAML,JSON甚至Python模块。

答案 1 :(得分:1)

使用nose-testconfig --tc选项可以覆盖配置值。使用冒号将键与值分开。例如,

nosetests test.py --tc=url:dev.example.com

将使config['url']中的值可用。

from testconfig import config

def test_url_is_dev():
    assert 'dev' in config['url']