gpt4 book ai didi

python - 如何将命令参数插入字符串中?

转载 作者:行者123 更新时间:2023-11-30 22:20:57 25 4
gpt4 key购买 nike

我试图弄清楚如何将命令行参数发送到字符串中,但我不断收到错误。

这是我的带有命令参数的 python 代码

import sys
class LoginTest(unittest.TestCase):
def setUp(self):
buildURL = sys.argv[1]
self.driver = webdriver.Chrome()
self.driver.get("https://" + buildURL + "test.com")

这是我发送的命令行参数。

python test.py build190 

最后是我不断收到的错误。

AttributeError: 'module' object has no attribute 'build190'

我收到的完整错误消息

Traceback (most recent call last):
File "Test.py", line 60, in <module>
unittest.main()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/main.py", line 94, in __init__
self.parseArgs(argv)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/main.py", line 149, in parseArgs
self.createTests()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/main.py", line 158, in createTests
self.module)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/loader.py", line 130, in loadTestsFromNames
suites = [self.loadTestsFromName(name, module) for name in names]
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/loader.py", line 100, in loadTestsFromName
parent, obj = obj, getattr(obj, part)
AttributeError: 'module' object has no attribute 'build190'

最佳答案

您正在尝试运行单元测试,它的加载方式会干扰您将参数传递给脚本的意图。

在我们进一步讨论之前,单元测试应该独立运行,向它们传递参数并不是最佳实践。 Here您可以阅读不这样做的原因。

无论如何,尝试一下这个片段。它应该可以工作。

import sys
import unittest

class LoginTest(unittest.TestCase):
buildURL = ""

def setUp(self):
self.driver = webdriver.Chrome()
self.driver.get("https://" + buildURL + "test.com")

if __name__ == "__main__":
LoginTest.buildURL = sys.argv[1]
unittest.main()

如果您决定走这条路(将参数传递给单元测试),您应该添加一些检查是否有任何参数,并且如果您想使用不存在的 buildURL 运行设置。

关于python - 如何将命令参数插入字符串中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48726445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com