繁体   English   中英

如何修复“TypeError: 'NoneType' 对象不可调用”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM