import unittest
from ddt import data, unpack
from selenium import webdriver
import ddt
@ddt
class searchddt(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.implicitly_wait(30)
self.driver.maximize_window()
self.driver.get('https://magento.com/products/magento-commerce')
@data(("phones",2))
@unpack
def test_search(self,search_val,expected_count):
self.searchfield=self.driver.find_element_by_xpath("//I[@aria-hidden='true']/self::I")
self.searchfield.clear()
self.searchfield.send_keys(search_val)
self.searchfield.submit()
def tearDown(self):
self.driver.quit()
if __name__=='__main__':
unittest.main(verbosity=2)
FAILED (errors=1)
错误 Traceback(最近一次调用最后一次): 运行中的文件
"C:\Python27\lib\unittest\case.py"
,行329
测试方法() 在testFailure中归档"C:\Python27\lib\unittest\loader.py"
,第32行 提出例外 ImportError:导入测试模块失败:ddt class searchddt(unittest.TestCase): TypeError:' module'对象不可调用Process finished with exit code 1
答案 0 :(得分:0)
这里有两个问题。
第一个问题由另一个答案涵盖:您需要from ddt import ddt
而不是import ddt
。
第二个是你的测试函数用@unpack
修饰,所以传递给@data
的元组将被ddt解压缩,创建两个函数调用:test_search_1("phones")
和{{1 }}。这不是你想要的。
您可能需要以下内容:
test_search_2(2)
还有第三个问题,即test和tearDown函数的缩进,不应该在setUp中。