老师,麻烦看下这是什么问题

来源:4-8 项目中如何生成测试报告

慕神6095868

2021-01-30

from test_case.business.register_business import RegisterBusiness
import unittest
import HtmlTestRunner
import os

class FirstCase(unittest.TestCase):
""“
case层
”""

def setUp(self):
    self.register_b = RegisterBusiness('chrome')

def tearDown(self):
    print("case后置条件")

def test_register_email_error(self):
    email_error = self.register_b.register_email_error('qwe', '程柔位', '123456', '23456')
    self.assertFalse(email_error, 'case执行')  # 断言是否为false

@unittest.skip("不执行这一条")
def test_register_username_error(self):
    name_error = self.register_b.register_name_error('qwe@123.com', '1', '123456', '23456')
    self.assertFalse(name_error)

@unittest.skip("不执行这一条")
def test_register_password_error(self):
    password_error = self.register_b.register_password_error('qwe@123.com', 'chengtouwei', '1234', '23456')
    self.assertFalse(password_error)

@unittest.skip("不执行这一条")
def test_register_code_error(self):
    code_error = self.register_b.register_code_error('qwe@123.com', 'chengtouwei', '123456', '23456')
    self.assertFalse(code_error)

def test_register_success(self):
    success = self.register_b.register_succes('qwe@123.com', 'chengtouwei', '123456', '23456')
    self.assertTrue(success)

if name == ‘main’:
f_path = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(file))))
file_path = os.path.join(f_path + “/report/” + ‘first_case.html’)
f = open(file_path, “wb”)
# unittest.main()
suite = unittest.TestSuite()
suite.addTest(FirstCase(‘test_register_email_error’))
# unittest.TextTestRunner().run(suite)
run = HtmlTestRunner.HTMLTestRunner(stream=f, report_title=“this is first report”, descriptions=u"这个是测试报告",
verbosity=2)
run.run(suite)

运行结果
Traceback (most recent call last):
File “/Users/xiachengpeng/PycharmProjects/pythonProject/test_case/case/firse_case.py”, line 52, in
run.run(suite)
File “/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/HtmlTestRunner/runner.py”, line 67, in run
self.stream.writeln()
File “/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/unittest/runner.py”, line 26, in writeln
self.write(’\n’) # text-mode streams translate to \r\n if needed
TypeError: a bytes-like object is required, not ‘str’

写回答

3回答

慕容吉运

2021-02-24

版本不一样了, 参考这个 https://www.pianshen.com/article/7550408895/  我已经解决了.

现在 HtmlTestRunner 的形参已经变了. 

不用自己创建目标文件了.


//img.mukewang.com/szimg/6035d59109e3691e19201040.jpg


1
3
慕容吉运
回复
Nancy胡
默认当前文件夹下会生成一个reports文件夹,里面会生成带时间戳的报告
2021-02-24
共3条回复

Nancy胡

2021-02-22

同学,我把f = open(file_path, “wb”)换成f = open(file_path, "w",encoding='utf-8'),报错没有了,注意是把“wb”换成了“w”,添加encoding是为了解决报告里的中文乱码

1
6
Nancy胡
回复
慕容吉运
wb是二进制写入方式打开文件,w是写入方式打开文件
2021-02-24
共6条回复

Mushishi

2021-01-31

TypeError: a bytes-like object is required, not ‘str’

你看你htmltestrunner是不是使用得python2 版本 而不是python3版本

0
5
Mushishi
回复
慕容吉运
哈哈 nb
2021-02-24
共5条回复

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

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

1883 学习 · 1093 问题

查看课程