求助!报错TypeError: test_register_case() missing 6 required positional arguments

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

仲夏rww

2020-08-05

老师,看了好多遍好像没错不知道为什么提示TypeError: test_register_case() missing 6 required positional arguments

详情报错信息
Testing started at 下午 17:51 …
E:\Python3.7.1\python.exe “C:\Program Files\JetBrains\PyCharm 2019.1.3\helpers\pycharm_jb_unittest_runner.py” --path F:/test_project/case/first_ddt_case.py
Launching unittests with arguments python -m unittest F:/test_project/case/first_ddt_case.py in F:\test_project\case
这个是case的前置条件

Ran 1 test in 12.979s
这个是case的后置条件

FAILED (errors=1)

Error
Traceback (most recent call last):
File “E:\Python3.7.1\lib\unittest\case.py”, line 59, in testPartExecutor
yield
File “E:\Python3.7.1\lib\unittest\case.py”, line 615, in run
testMethod()
TypeError: test_register_case() missing 6 required positional arguments: ‘email’, ‘username’, ‘password’, ‘code’, ‘assertCode’, and ‘assertText’

Assertion failed

Assertion failed
Exception ignored in: <function Popen.del at 0x000001F2F38DE378>
Traceback (most recent call last):
File “E:\Python3.7.1\lib\subprocess.py”, line 854, in del
self._internal_poll(_deadstate=_maxsize)
File “E:\Python3.7.1\lib\subprocess.py”, line 1210, in _internal_poll
if _WaitForSingleObject(self._handle, 0) == _WAIT_OBJECT_0:
OSError: [WinError 6] 句柄无效。

Process finished with exit code 1

Assertion failed

Assertion failed

Assertion failed

Assertion failed

代码详情
‘firstfdtcase’
def setUp(self):
warnings.simplefilter(‘ignore’, ResourceWarning)
self.driver = webdriver.Chrome()
self.driver.get(‘http://www.5itest.cn/register’)
self.login = RegisterBusiness(self.driver)
self.file_name = "F:/test_project/test_images/test01.png"
print(‘这个是case的前置条件’)
#后置做的事情仅仅是关闭浏览器
def tearDown(self):
for method_name,error in self._outcome.errors:
if error:
case_name = self._testMethodName
file_path = os.path.join(os.path.abspath(os.path.dirname(os.getcwd())) + ‘/report/’+ case_name + ‘.png’)
self.driver.save_screenshot(file_path)
self.driver.close()
print(‘这个是case的后置条件’)
@ddt.data(
[‘12’,‘rww01’, ‘111111’,‘code’,‘user_email_error’,‘请输入有效的电子邮件地址’],
[’@qq.com’, ‘rww01’, ‘111111’, ‘code’, ‘user_email_error’, ‘请输入有效的电子邮件地址’],
[‘12@qq.com’, ‘rww01’, ‘111111’, ‘code’, ‘user_email_error’, ‘请输入有效的电子邮件地址’]
)

@ddt.unpack  # 解包
# 名字从test_login_email_error改成test_register_case
def test_register_case(self,email,username,password,code,assertCode,assertText):
    email_error = self.login.register_function(email,username,password,code,assertCode,assertText)
    # 通过assert  判断是否是  error
    return self.assertTrue(email_error, "test_login_email_error用例执行了")

business
def register_function(self,email,username,password,code,assertCode,assertText):
self.user_base(email, username, password, code)
if self.register_h.get_user_text(assertCode, assertText) == None:
print(‘邮箱检验不成功’)
return True
else:
return False

写回答

1回答

Mushishi

2020-08-05

TypeError: test_register_case() missing 6 required positional arguments
你test register case需要几个参数,但是你传递了几个?

0
4
慕UI2230144
回复
慕UI7141847
就是少了@ddt.ddt 感谢兄弟
2022-05-13
共4条回复

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

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

1890 学习 · 1093 问题

查看课程