unittest中如何设置测试的前置和后置操作?

2026-05-21 18:593阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计892个文字,预计阅读时间需要4分钟。

unittest中如何设置测试的前置和后置操作?

在PyCharm中,如果你遇到执行某些程序时默认在unittest框架下运行导致报错的问题,可以通过以下步骤解决:

1. 打开PyCharm。

2.点击菜单栏中的File(文件)。

3.选择Settings(设置)或按快捷键`Ctrl + Alt + S`(Windows/Linux)或`Cmd + ,`(macOS)。

4.在设置窗口中,找到Tools(工具)。

5.在工具选项下,选择Python Integrated Tools(Python集成工具)。

6.在Python Integrated Tools设置中,找到Default test runner(默认测试运行器)。

7.将默认测试运行器从unittest更改为pytest。

8.点击OK保存设置。

这样设置后,PyCharm在执行Python程序时将默认使用pytest框架,而不是unittest,从而避免因默认框架不匹配导致的错误。

前戏

先解决一个问题:pycharm执行某些程序时会默认在unittest框架下执行,从而导致程序报错,怎样解决这个问题呢?File->setting->Tools->Python Intergrated Tools->Default test runner->py.test选择后如果显示未安装,请先安装py.test

import unittest


class Test_case(unittest.TestCase):

def test01(self):
print('第一个测试用例')

def test02(self):
print('第二个测试用例')


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

结果:

..
第一个测试用例

第二个测试用例

类要继承unittest.TestCase,下面的函数名要以test开头才会执行,.(点)表示成功了多少条用例,F表示失败的用例,E表示程序本身有问题

import unittest


class Test_case(unittest.TestCase):

def setUp(self):
print('我是前置条件')

def tearDown(self):
print('我是后置条件')

def test01(self):
print('第一个测试用例')

def test02(self):
print('第二个测试用例')


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

结果:

..
我是前置条件
第一个测试用例
我是后置条件

我是前置条件
第二个测试用例
我是后置条件

setup在每条用例执行前执行,teatdown在每条用例执行完之后执行

import unittest


class Test_case(unittest.TestCase):
@classmethod
def setUpClass(cls):
print('我是所有用例的前置')

@classmethod
def tearDownClass(cls):
print('我是所有用例的后置')

def setUp(self):
print('我是前置条件')

def tearDown(self):
print('我是后置条件')

def test01(self):
print('第一个测试用例')

def test02(self):
print('第二个测试用例')


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

结果:

我是所有用例的前置

我是前置条件
第一个测试用例
我是后置条件

我是前置条件
第二个测试用例
我是后置条件

我是所有用例的后置

setUpClass(cls)所有用例执行之前执行,要加@classmethod
tearDownClass(cls)所有用例执行之后执行

import unittest


class Test_case(unittest.TestCase):

def setUp(self):
print('我是前置条件')

def tearDown(self):
print('我是后置条件')

def test01(self):
'''第一个测试'''
print('test01')

def test02(self):
'''第二个测试'''
print('test02')


if __name__ == '__main__':
unittest.main(verbosity=2) # 可以加参数

结果:

我是前置条件
test01 (__main__.Test_case)
test01
我是后置条件
第一个测试 ... ok

我是前置条件
test02 (__main__.Test_case)
test02
第二个测试 ... ok
我是后置条件

verbosity有三个值

0代表得到执行的测试总数和全局结果

1代表得到成功的显示.失败的显示F,错误的显示E

2可以得到详细的信息,可以打印出注释信息,在注释后面显示成功失败的信息

unittest中如何设置测试的前置和后置操作?



本文共计892个文字,预计阅读时间需要4分钟。

unittest中如何设置测试的前置和后置操作?

在PyCharm中,如果你遇到执行某些程序时默认在unittest框架下运行导致报错的问题,可以通过以下步骤解决:

1. 打开PyCharm。

2.点击菜单栏中的File(文件)。

3.选择Settings(设置)或按快捷键`Ctrl + Alt + S`(Windows/Linux)或`Cmd + ,`(macOS)。

4.在设置窗口中,找到Tools(工具)。

5.在工具选项下,选择Python Integrated Tools(Python集成工具)。

6.在Python Integrated Tools设置中,找到Default test runner(默认测试运行器)。

7.将默认测试运行器从unittest更改为pytest。

8.点击OK保存设置。

这样设置后,PyCharm在执行Python程序时将默认使用pytest框架,而不是unittest,从而避免因默认框架不匹配导致的错误。

前戏

先解决一个问题:pycharm执行某些程序时会默认在unittest框架下执行,从而导致程序报错,怎样解决这个问题呢?File->setting->Tools->Python Intergrated Tools->Default test runner->py.test选择后如果显示未安装,请先安装py.test

import unittest


class Test_case(unittest.TestCase):

def test01(self):
print('第一个测试用例')

def test02(self):
print('第二个测试用例')


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

结果:

..
第一个测试用例

第二个测试用例

类要继承unittest.TestCase,下面的函数名要以test开头才会执行,.(点)表示成功了多少条用例,F表示失败的用例,E表示程序本身有问题

import unittest


class Test_case(unittest.TestCase):

def setUp(self):
print('我是前置条件')

def tearDown(self):
print('我是后置条件')

def test01(self):
print('第一个测试用例')

def test02(self):
print('第二个测试用例')


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

结果:

..
我是前置条件
第一个测试用例
我是后置条件

我是前置条件
第二个测试用例
我是后置条件

setup在每条用例执行前执行,teatdown在每条用例执行完之后执行

import unittest


class Test_case(unittest.TestCase):
@classmethod
def setUpClass(cls):
print('我是所有用例的前置')

@classmethod
def tearDownClass(cls):
print('我是所有用例的后置')

def setUp(self):
print('我是前置条件')

def tearDown(self):
print('我是后置条件')

def test01(self):
print('第一个测试用例')

def test02(self):
print('第二个测试用例')


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

结果:

我是所有用例的前置

我是前置条件
第一个测试用例
我是后置条件

我是前置条件
第二个测试用例
我是后置条件

我是所有用例的后置

setUpClass(cls)所有用例执行之前执行,要加@classmethod
tearDownClass(cls)所有用例执行之后执行

import unittest


class Test_case(unittest.TestCase):

def setUp(self):
print('我是前置条件')

def tearDown(self):
print('我是后置条件')

def test01(self):
'''第一个测试'''
print('test01')

def test02(self):
'''第二个测试'''
print('test02')


if __name__ == '__main__':
unittest.main(verbosity=2) # 可以加参数

结果:

我是前置条件
test01 (__main__.Test_case)
test01
我是后置条件
第一个测试 ... ok

我是前置条件
test02 (__main__.Test_case)
test02
第二个测试 ... ok
我是后置条件

verbosity有三个值

0代表得到执行的测试总数和全局结果

1代表得到成功的显示.失败的显示F,错误的显示E

2可以得到详细的信息,可以打印出注释信息,在注释后面显示成功失败的信息

unittest中如何设置测试的前置和后置操作?