是否有任何正确的方法可以在cmd中使用获取url作为testcases.py文件中的参数?
我在cmd下面的commmand下运行以运行python文件的测试用例: testcases.py"任何网址"
testcases.py有编码:
class JSAlertCheck(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome("E:\chromedriver.exe")
self.url = sys.argv[1]
def test_Case1(self):
driver = self.driver
def tearDown(self):
self.driver.quit()
if __name__ == "__main__":
unittest.main(sys.argv[1])
答案 0 :(得分:0)
根据讨论Python unittest passing arguments, Python Pundits 似乎传达了这一点:
单元测试应该是独立的,它们在
setUp()
和tearDown()
方法之外没有依赖性。这是为了确保每个测试都具有最小的副作用和对其他测试的反应。传入参数会使 unittest 的此属性失效,从而使它们无效。使用测试配置是最简单的方法,因为 unittest 绝不应该依赖外国数据来执行测试。
如果你仍然想这样做,这是一个有效的解决方案:
代码块:
from selenium import webdriver
import unittest
import sys
class MyTest(unittest.TestCase):
URL = "foo"
def setUp(self):
self.driver = webdriver.Chrome(executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
driver = self.driver
driver.get(self.URL)
def test_Case1(self):
driver = self.driver
print(driver.title)
def tearDown(self):
self.driver.quit()
if __name__ == "__main__":
if len(sys.argv) > 1:
MyTest.URL = sys.argv.pop()
unittest.main()
CLI命令:
python unittest_cmdline_urlASarguments.py http://www.python.org
输出:
C:\Users\AtechM_03\LearnAutmation\PythonProject\readthedocs>python unittest_cmdline_urlASarguments.py http://www.python.org
[4448:5632:0606/205445.017:ERROR:install_util.cc(589)] Unable to create registry key HKLM\SOFTWARE\Policies\Google\Chrome for reading result=2
DevTools listening on ws://127.0.0.1:5634/devtools/browser/40cc6c16-1e52-4f49-a54f-08fac3ff7abc
Welcome to Python.org
.
----------------------------------------------------------------------
Ran 1 test in 9.534s
OK
C:\Users\AtechM_03\LearnAutmation\PythonProject\readthedocs>
命令行快照: