[英]How To Fix “TypeError: 'NoneType' object is not callable”
当我运行我的脚本时:
from selenium import webdriver
# from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import os
import pytest
import unittest
from nose_parameterized import parameterized
class multiBrowsers(unittest.TestCase):
@parameterized.expand([
("chrome"),
("firefox"),
])
def setUp(self, browser):
if browser == "firefox":
caps = DesiredCapabilities.FIREFOX
caps["marionette"] = True
caps["binary"] = "/Applications/Firefox.app/Contents/MacOS/firefox-bin"
self.driver = webdriver.Firefox(capabilities=caps)
elif browser == "chrome":
self.driver = webdriver.Chrome()
def test_loadPage(self):
driver = self.driver
driver.get("http://www.google.com")
def tearDown(self):
self.driver.quit()
我收到错误:
Error
TypeError: 'NoneType' object is not callable
我读到我没有正确传递某些东西,但我不知道该往哪里看。 预先感谢您的帮助!
不确定参数化是否可以应用于 setUp,我设法让它与测试功能一起工作:
@parameterized.expand([
("chrome"),
("firefox"),
])
def test_loadPage(self, browser):
添加@parametrized 装饰器后,我收到'NoneType' object is not callable
错误并且测试名称未在测试资源管理器中正确显示。
在测试资源管理器中刷新方法后,测试名称被格式化为test_loadPage_0_chrome
并测试工作。
完全猜测,但我认为这可能是您的问题:
@parameterized.expand([
("chrome"),
("firefox"),
])
@parameterized
某些内容可能无法将它们识别为元组。 尝试添加一个逗号,使它们显式元组:
@parameterized.expand([
("chrome", ),
("firefox", ),
])
在将 parametrized.expand 与 unittest.TestCase 类一起使用时,我遇到了同样的错误。 虽然构建套件参数化添加到测试 _0、_1 就足够了,因此如果您手动将测试添加到套件中,则会引发此错误。 最好的解决办法是使用,
suite = unittest.TestSuite()
testloader = unittest.TestLoader()
testnames = testloader.getTestCaseNames(t_class)
for name in testnames:
suite.addTest(t_class(name))
runner = unittest.TextTestRunner(verbosity=2)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.