AttributeError:“TextTestResult”对象没有属性“assertIn”

2024-10-01 15:29:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试一些Python和selenium,我有一些定义的测试simpleUsageUnittest.py公司名称:

import unittest
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

class PythonOrgSearch(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Firefox()

#   @unittest.skip("skip test_001")
    def test_001_search_in_python_org(self):
        driver = self.driver
        driver.get("http://www.python.org")
        self.assertIn("Python", driver.title)
        elem = driver.find_element_by_name("q")
        elem.send_keys("selenium")
        elem.send_keys(Keys.RETURN)

#   @unittest.skip("skip test_002")
    def test_002_goole_and_stack_test_test(self):
        driver_g = self.driver
        driver_g.get("http://www.google.com")
        self.assertIn("Google", driver_g.title)
        body_g = driver_g.find_element_by_tag_name("body")
        body_g.send_keys(Keys.CONTROL + 't')
        driver_g.get("http://stackoverflow.com")
        self.assertIn("Stack", driver_g.title)

    def tearDown(self):
        self.driver.close()

if __name__ == "__main__":
    unittest.main(warnings = 'ignore')

单靠这套设备工作得很好,但我正在努力创造一套,测试套件.py公司名称:

^{pr2}$

在运行这个套件时,我遇到AttributeError:'TextTestResult'对象没有属性'assertIn',由于我不完全理解它,所以我无法修复它;)如果我删除了simpleUsageUnittest.py-然后它又开始工作了,但这当然不是我想做的!另外,Asserts in Python 2.7 not working for me example assertIn并不是一个很大的帮助,因为我使用的是python3.3.5和Selenium 2.41.0。有人能给我解释一下吗?或者直接使用什么属性来保存断言?;)

完整跟踪:

C:\Users\zzz\Python\selenium_tutorial>python testTestSuite.py
Traceback (most recent call last):
  File "testTestSuite.py", line 14, in <module>
    result = unittest.TextTestRunner(verbosity=2).run(suite())
  File "C:\Python33\lib\unittest\runner.py", line 168, in run
    test(result)
  File "C:\Python33\lib\unittest\suite.py", line 67, in __call__
    return self.run(*args, **kwds)
  File "C:\Python33\lib\unittest\suite.py", line 105, in run
    test(result)
  File "C:\Users\zzz\Python\selenium_tutorial\simpleUsageUnittest.py", line
 18, in test_001_search_in_python_org
    self.assertIn("Python", driver.title)
AttributeError: 'TextTestResult' object has no attribute 'assertIn'

解决方案

好吧,看起来像我的测试套件.py,执行时,TextTestRunner处理“自组装“线路输入simpleUsageUnittest.pyas self==TextTestRunner而不是self==TestCase(我不知道我是否正确地解释/理解它,但这是我如何看待它的;)。这里是固定的测试套件.py公司名称:

import unittest
import simpleUsageUnittest
import sys

def suite():
    testSuite = unittest.TestSuite()
    testSuite.addTest(simpleUsageUnittest.PythonOrgSearch('test_001_search_in_python_org'))
    testSuite.addTest(simpleUsageUnittest.PythonOrgSearch('test_002_goole_and_stack_test_test'))
    return testSuite

if __name__ == "__main__":
    result = unittest.TextTestRunner(verbosity=2).run(suite())
    sys.exit(not result.wasSuccessful())

缺少“setUp”和“tearDown”,因为在每次“test”之后都会自动调用它们。在


Tags: runinpytestimportselfdefdriver
1条回答
网友
1楼 · 发布于 2024-10-01 15:29:01

解决方案

好吧,看起来像我的测试套件.py,执行时,TextTestRunner处理“自组装“线路输入simpleUsageUnittest.pyas self==TextTestRunner而不是self==TestCase(我不知道我是否正确地解释/理解它,但这是我如何看待它的;)。这里是固定的测试套件.py公司名称:

import unittest
import simpleUsageUnittest
import sys

def suite():
    testSuite = unittest.TestSuite()
    testSuite.addTest(simpleUsageUnittest.PythonOrgSearch('test_001_search_in_python_org'))
    testSuite.addTest(simpleUsageUnittest.PythonOrgSearch('test_002_goole_and_stack_test_test'))
    return testSuite

if __name__ == "__main__":
    result = unittest.TextTestRunner(verbosity=2).run(suite())
    sys.exit(not result.wasSuccessful())

缺少“setUp”和“tearDown”,因为在每次“test”之后都会自动调用它们。在

相关问题 更多 >

    热门问题