请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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

3回答

慕容吉运 2021-02-24 12:24:16

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

现在 HtmlTestRunner 的形参已经变了. 

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


//img1.sycdn.imooc.com//szimg/6035d59109e3691e19201040.jpg


1 回复 有任何疑惑可以回复我~
  • C:\Users\tedu\AppData\Local\Programs\Python\Python39\Lib\site-packages\HtmlTestRunner\result.py
    回复 有任何疑惑可以回复我~ 2021-02-24 12:29:52
  • 不自己创建目标文件,你的报告生成在哪里呀
    回复 有任何疑惑可以回复我~ 2021-02-24 18:50:59
  • 默认当前文件夹下会生成一个reports文件夹,里面会生成带时间戳的报告
    回复 有任何疑惑可以回复我~ 2021-02-24 22:54:15
Nancy胡 2021-02-22 21:27:13

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

1 回复 有任何疑惑可以回复我~
  • 哈哈,不错不错 加油。
    回复 有任何疑惑可以回复我~ 2021-02-22 21:52:57
  • 谢谢, 用你的方法解决了, wb 和 w 具体指的是什么含义?
    回复 有任何疑惑可以回复我~ 2021-02-24 11:13:08
  • 好像报告就变丑了
    回复 有任何疑惑可以回复我~ 2021-02-24 11:25:24
Mushishi 2021-01-31 13:04:30

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

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

0 回复 有任何疑惑可以回复我~
  • 遇到和这位同学一样的问题,我的HTMLTestRunner是专门选了-python3的
    回复 有任何疑惑可以回复我~ 2021-02-22 21:14:05
  • ok test04 (__main__.TestCase)
    ok test02 (__main__.TestCase)
    Traceback (most recent call last):
      File "D:/PycharmProjects/apitestProject/testCase/unittest_case.py", line 60, in <module>
        runner.run(suite)
      File "D:\envs\apitestProject\lib\site-packages\HTMLTestRunner\HTMLTestRunner.py", line 631, in run
        self.generateReport(test, result)
      File "D:\envs\apitestProject\lib\site-packages\HTMLTestRunner\HTMLTestRunner.py", line 691, in generateReport
        self.stream.write(output)
    TypeError: a bytes-like object is required, not 'str'
    回复 有任何疑惑可以回复我~ 2021-02-22 21:15:20
  • 类似的问题
    回复 有任何疑惑可以回复我~ 2021-02-22 21:19:32
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信