如何在命令行上传入参数到nosetests

时间:2016-03-11 16:08:16

标签: python automated-tests nose

我正在编写api测试并使用nose运行它们,并希望传递像test域这样的参数。一种方法是设置环境变量。但我正在寻找像$ nosetests --test-domain=http://xx.x.xxx.xxx:xxxx这样的东西。我有办法实现这个吗?

以下是我的一些测试代码,我想传入测试域名,而不是在测试中对其进行硬编码。

import unittest
from utils import HTTPClient


class TestProfiles(unittest.TestCase):

    def setUp(self):
        test_domain = "http://xx.x.xxx.xxx:xxxx"
        headers = {}
        auth_token = "Bearer rtghyuGsHitiYWQzOWRiZmU6ODUwZTYldorkfTE2NTEwYTk3ZTg3YMdmNzRkZjc1NDg0OTgxYzNkYzU2NjExZw"
        headers["Authorization"] = auth_token
        self.client = HTTPClient(test_domain, headers)

    def test_get_profiles_valid(self):
        path = "/v1/users/033a60d5-3339-4898-93e5-83f1a5a46cbe/profiles"
        r = self.client.request(path)
        self.assertEqual(r.status_code, 200)

如果我别无选择,我将使用env变量并运行测试:

$ TEST_DOMAIN=http://xx.x.xxx.xxx:xxxx nosetests

1 个答案:

答案 0 :(得分:1)

通常使用单元测试来调用真正的api是一个坏主意。也许你应该模仿这个api调用来测试你自己的函数?无论如何,你可以使用nose-testconfig传递一些参数。 您也可以从您自己的应用程序中调用var message = [ market, address, ticket, userName, phone, comment].join("\n") runner,该应用程序接受任何参数,或者编写插件