python-记录一个unittest坑,xmlrunner没有生成对应的xml文件的问题

遇到一个问题:

  xmlrunner和unittest放在一起,很大可能不生成xml文件的问题;

解决办法:

  单独写xmlrunner的调用,执行成功。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
__author__ = 'wyf349'
__mtime__ = '2019/12/20'
'''
'''
版本修改:
V 1.0.2 增加单元测试模块
'''

import unittest
import xmlrunner
import os
from CCTVnews_text_V1 import *


class Test_getNews(unittest.TestCase):

    url_t1 = r'http://www.xwlb.top/xwlb.html'
    url_t2 = r'http://www.xwlb.top/xwlb.html'
    url_t3 = r'http://www.xwlb.top/xwlb.html'
    #通过类属性设置unittest的简单参数化
    def teardown(self):
        #每个测试用例执行之后做操作
        print('unittest is ended!')

    def setUp(self):
        #么个测试用例执行之前做操作,可以在这里用JSON设置参数化
        print('Test starting...')

    @classmethod
    def tearDownClass(self):
        #必须使用 @classmethod 装饰器,所有的test运行完之后运行一次
        if os.path.isfile(r'./temp/text.tmp'):
            os.remove(r'./temp/text.tmp')
            print('临时文件清理!')
        print('case ended!!')

    @classmethod
    def setUpClass(self):
        #必须使用 @classmethod 装饰器,所有的test运行之前运行一次
        print('start to test getnews!')

    def test_a_run(self):
        self.assertTrue(getRespose(self.url_t1))
        #测试用例

    def test_b_run(self):
        self.assertTrue(getNowUrls(self.url_t1, 1))

    def test_c_run(self):
        self.assertTrue(getNowUrls(self.url_t1, 2))

    def test_c_run(self):
        self.assertTrue(textWrite('1', '2', file_path=r'.	emp', file_name=r'text.tmp'))

    def test_d_run(self):
        self.assertTrue(pageParsing(self.url_t2))

    def test_e_run(self):
        self.assertTrue(getRespose(self.url_t3))

if __name__=='__main__':
    test_suite = unittest.TestSuite()
    test_suite.addTest(unittest.makeSuite(Test_getNews))
    #使用makeSuite方法添加所有的测试方法
    #test_suite.addTest(Test_getNews('test_e_run'))
    # 测试套件中添加测试用例
    runner = xmlrunner.XMLTestRunner(output='report-xml')
    #指定报告放的目录
    runner.run(test_suite)

  独立文件,成功;

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import unittest
import xmlrunner
from Test_getNews import *

if __name__=='__main__':
    test_suite = unittest.TestSuite()
    test_suite.addTest(unittest.makeSuite(Test_getNews))
    #使用makeSuite方法添加所有的测试方法
    #test_suite.addTest(Test_getNews('test_e_run'))
    # 测试套件中添加测试用例
    runner = xmlrunner.XMLTestRunner(output='report-xml')
    #指定报告放的目录
    runner.run(test_suite)