一直提示缺少参数

来源:5-3 项目中实现数据驱动,重构case及business

红尘过客zuozs

2019-11-27

#coding=utf-8
import unittest
import os
import time
import sys
import ddt
sys.path.append(r'E:\Anaconda3\vscode\selenium3_to_python3')
from business.register_business import RegisterBusiness
from selenium import webdriver
import HTMLTestRunner

class FirstDdtCase(unittest.TestCase):
    

    def setUp(self):
        self.driver = webdriver.Chrome()
        self.driver.get('http://www.5itest.cn/register')
        self.driver.maximize_window()
        time.sleep(1)
        self.register_b = RegisterBusiness(self.driver)
        

    def tearDown(self):
        time.sleep(2)
        for method_name,error in self._outcome.errors:
            print(method_name,error)
            if error:
                case_name = self._testMethodName
                file_path = os.path.join(os.getcwd()+'/report/'+case_name+'.png')
                self.driver.save_screenshot(file_path)
        self.driver.close()
    #邮箱、用户名、密码、验证码、错误信息定位元素、错误提示信息
    @ddt.data(['12@qq.com','zuozs02','qqzuo123','code','user_email_error','请输入有效的邮箱地址'])
            
            # ['@qq.com','zuozs02','qqzuo123','code','user_email_error','请输入有效的邮箱地址'],
            # ['12@qq.com','zuozs02','qqzuo123','code','user_email_error','请输入有效的邮箱地址']
    

    @ddt.unpack
    def test_register_case(self,email,name,password,code,assertCode,assertText):
        email_error = self.register_b.register_function(email,name,password,code)
        self.assertFalse(email_error,'邮箱错误验证失败')  

if __name__ == "__main__":
    unittest.main()

************************************************************************
(base) E:\Anaconda3\vscode>E:/Anaconda3/python.exe e:/Anaconda3/vscode/selenium3_to_python3/case/first_ddt_case.py

DevTools listening on ws://127.0.0.1:7613/devtools/browser/f4eef894-b572-4c6b-a4ce-46e1d6e57469
libpng warning: iCCP: cHRM chunk does not match sRGB
test_register_case (__main__.FirstDdtCase) None
test_register_case (__main__.FirstDdtCase) (<class 'TypeError'>, TypeError("test_register_case() missing 6 required positional arguments: 'email', 'name', 'password', 'code', 'assertCode', and 'assertText'"), <traceback object at 0x0000025504B1F688>)
E
======================================================================
ERROR: test_register_case (__main__.FirstDdtCase)
----------------------------------------------------------------------
TypeError: test_register_case() missing 6 required positional arguments: 'email', 'name', 'password', 'code', 'assertCode', and 'assertText'
写回答

1回答

红尘过客zuozs

提问者

2019-11-27

找到原因了,原来是类的开头少了@ddt.ddt

0
1
Mushishi
不错,加油哟
2019-11-28
共1条回复

Selenium3与Python3实战Web自动化测试框架

打破无项目经验、无框架经验瓶颈,实战Web自动化测试框架!

1883 学习 · 1093 问题

查看课程