<p>经过多次试验,我终于找到了方法。我需要的是将用户名和密码传递给脚本,以便允许代码登录到测试服务器。我的测试是这样的:<br/>
<em>my_module_test.py</em></p>
<pre class="lang-py prettyprint-override"><code>import pytest
import my_module
def login_test(username, password):
instance = my_module.Login(username, password)
# ...more...
</code></pre>
<p><em>conftest.py</em></p>
<pre class="lang-py prettyprint-override"><code>import pytest
def pytest_addoption(parser):
parser.addoption(' username', action='store', help='Repository user')
parser.addoption(' password', action='store', help='Repository password')
def pytest_generate_tests(metafunc):
username = metafunc.config.option.username
if 'username' in metafunc.fixturenames and username is not None:
metafunc.parametrize('username', [username])
password = metafunc.config.option.password
if 'password' in metafunc.fixturenames and password is not None:
metafunc.parametrize('password', [password])
</code></pre>
<p>然后在我的设置文件中,我可以使用:<br/>
<em>.vscode/settings.json</em></p>
<pre><code>{
// ...more...
"python.testing.autoTestDiscoverOnSaveEnabled": true,
"python.testing.unittestEnabled": false,
"python.testing.nosetestsEnabled": false,
"python.testing.pytestEnabled": true,
"python.testing.pytestArgs": [
" exitfirst",
" verbose",
"test/",
" username=myname",
" password=secret",
// ...more...
],
}
</code></pre>
<p>另一种方法是使用pytest.ini文件:<br/>
<em>pytest.ini</em></p>
<pre><code>[pytest]
junit_family=legacy
addopts = username=myname password=secret
</code></pre>