首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python,单元测试 - 将命令行参数传递给unittest.TestCase的setUp

首先,我们需要了解Python中的单元测试框架unittest以及setUp方法。unittest是Python内置的一个单元测试框架,它提供了一系列的测试类和方法,用于编写和运行测试用例。setUp方法是unittest中的一个特殊方法,它会在每个测试方法运行之前被调用,用于设置测试环境。

unittest中,测试方法的命名必须以test_开头,否则它将不会被识别为测试方法。因此,如果要将命令行参数传递给unittest.TestCasesetUp方法,可以通过以下方式实现:

  1. 在命令行中输入参数,例如:python -m unittest test_module.TestCase.test_method --arg1=value1 --arg2=value2
  2. setUp方法中使用sys.argv获取命令行参数,并解析出需要的参数值。

下面是一个示例代码:

代码语言:python
代码运行次数:0
复制
import sys
import unittest

class TestStringMethods(unittest.TestCase):

    def setUp(self):
        # 获取命令行参数
        args = sys.argv[1:]
        # 解析参数
        self.arg1 = None
        self.arg2 = None
        for arg in args:
            if arg.startswith('--arg1='):
                self.arg1 = arg.split('=')[1]
            elif arg.startswith('--arg2='):
                self.arg2 = arg.split('=')[1]

    def test_upper(self):
        self.assertEqual('foo'.upper(), 'FOO')
        self.assertEqual('bar'.upper(), 'BAR')

    def test_isupper(self):
        self.assertTrue('FOO'.isupper())
        self.assertFalse('Bar'.isupper())

    def test_split(self):
        s = 'hello world'
        self.assertEqual(s.split(), ['hello', 'world'])
        # 使用arg1和arg2参数
        self.assertEqual(s.split(self.arg1), ['hello', 'world'])

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

在上面的示例代码中,我们在setUp方法中使用sys.argv获取命令行参数,并解析出需要的参数值。然后在测试方法中使用这些参数值进行测试。在命令行中运行测试时,可以通过以下方式传递参数:

代码语言:txt
复制
python -m unittest test_module.TestStringMethods.test_upper --arg1=value1 --arg2=value2

这样,我们就可以将命令行参数传递给unittest.TestCasesetUp方法进行测试。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

深入解析Python中的unittest框架-基础用法与实践技巧

Python中的unittest框架: 基本用法和实例 Python的unittest框架是Python标准库中用于单元测试的模块,能够帮助开发者自动化测试,确保代码的正确性和稳定性。...在本文中,我们将详细介绍unittest框架的基本用法,包括测试用例、测试套件、断言方法等,并通过实例演示如何编写和运行测试。 什么是单元测试?...,可以通过命令行直接运行,也可以在代码中使用测试运行器。...通过命令行运行 将测试代码保存在一个Python文件中,例如test_example.py,然后在终端中运行: python -m unittest test_example.py 在代码中运行 可以在测试脚本的末尾添加以下代码来运行测试...小结 通过本文的介绍,我们了解了Python中unittest框架的基本用法和一些进阶功能,包括跳过测试、使用Mock对象、参数化测试等。

27320
  • Python:使用标准库编写单元测试

    在现代软件开发中,编写单元测试是确保代码质量和可靠性的重要步骤。Python 提供了一个内置的单元测试框架,称为 unittest,它可以帮助开发者方便地编写和运行测试。...本文将详细介绍如何使用 unittest 编写单元测试。 一、什么是单元测试? 单元测试是一种软件测试方法,通过对软件中的最小可测试部分(称为“单元”)进行验证,确保其行为符合预期。...在Python中,一个单元通常是一个函数或一个方法。 二、unittest 概述 unittest 是 Python 标准库中自带的单元测试框架,灵感来自于 Java 的 JUnit。...运行测试 要运行测试,只需在命令行中执行测试脚本: bash python test_math_operations.py 四、深入使用 使用 setUp 和 tearDown setUp 和 tearDown...python class TestMathOperations(unittest.TestCase): def setUp(self): # 设置测试环境 self.a

    14510

    【深度学习】深度学习中的单元测试

    我们将首先简要介绍单元测试,然后是一个深度学习中的单元测试示例,以及如何通过命令行和VS代码测试资源管理器运行这些测试。 介绍 单元测试是软件开发人员熟悉的概念。...Python中的单元测试 每种语言都有自己的工具和包可用于进行单元测试。Python还提供了一些单元测试框架。unittest包是标准Python库的一部分。...我将讨论如何通过命令行/bash和VS Code UI界面来使用这个框架。它的灵感来自JUnit,与其他语言中的主要单元测试框架有相似的风格。...接下来,我将向你展示如何使用VS代码测试资源管理器通过UI运行这些测试。 在VS Code[3]中运行Python单元测试 在VS代码中,Python中的测试在默认情况下是禁用的。...接下来,我们介绍了一个使用unittest包框架用PyTorch编写的数据加载器单元的实际示例。我们学习了如何通过命令行和Python测试资源管理器从VS代码运行这些测试。

    2.1K20

    python unittest框架

    ,即传入main的参数或是通过命令行添加的参数影响了unittest内部的某些特性,比如例子中的verbosity代表了测试结果输出的详细度,如果被设置为1,或者不设置,结果中将不会显示具体的testcase...可以看到命令行传递的sys.argv参数和传递到main的其他参数是相互替代的,这就达到了通过命令行传参启动和通过main代码传参启动,效果是一样的。     ...使用python -m unittest -h可以查看帮助命令,其中python -m unittest discover是命令行的另一分支,后面讨论,它也有自己的帮助命令,即也在后面加上-h     ...也可以通过上面提到的命令行来自动发现:python -m unittest discover **     可以指定下面的参数:-s 起始目录(.)  -t 顶级目录(.) ... operator import unittest,sys class TestOperator(unittest.TestCase):          def setUp(self):

    1.2K30

    python中如何定义函数的传入参数是option的_如何将几个参数列表传递给@ click.option…

    如果通过使用自定义选项类将列表格式化为python列表的字符串文字,则可以强制单击以获取多个列表参数: 自定义类: import click import ast class PythonLiteralOption...的Abstract Syntax Tree模块将参数解析为python文字....自定义类用法: 要使用自定义类,请将cls参数传递给@ click.option()装饰器,如: @click.option('--option1', cls=PythonLiteralOption,...这是有效的,因为click是一个设计良好的OO框架. @ click.option()装饰器通常实例化click.Option对象,但允许使用cls参数覆盖此行为.因此,从我们自己的类中继承click.Option...并过度使用所需的方法是一个相对容易的事情.

    7.7K30

    unittest框架核心要素及应用

    1. unittest核心要素 unittest介绍 测试框架,不仅仅用于单元测试 python自动的测试包 用法和django.test.TestCase类似 1.1【知道】unittest介绍和核心要素...运行容器中的测试用例 runner = unittest.TextTestRunner() runner.run(suite) 注意:只能通过命令运行 python xxx.py 1.3...容器,容器添加测试用例 # 默认找指定路径下,所有test开头的文件 # 参数1:路径,参数2:指定的文件 suite = unittest.defaultTestLoader.discover...运行,同时生成测试报告 # 参数1:生成文件的注释, 参数2:生成文件的filename, 参数3:生成report的文件存储路径 runner.report('报告描述必须有,在报告中显示为用例名称...运行,同时生成测试报告 # 参数1:生成文件的注释, 参数2:生成文件的filename, 参数3:生成report的文件存储路径 runner.report('登陆', '美多登陆测试报告

    45210

    pytest测试框架和unittest_python性能测试框架

    这里的预期结果一定要针对需求/设计的逻辑去写,而不是针对程序的实现去写,否则单元测试就失去意义,照着错误的实现设计出的case也很可能是错的 单元测试框架 Unittest python内置的标准类库...是用来测试python的库 单元测试覆盖率 代码覆盖率也被用于自动化测试和手工测试来度量测试是否全面的指标之一,应用覆盖率的思想增强测试用例的设计 单元测试覆盖类型: 语句覆盖 条件覆盖...判断覆盖 路径覆盖 unittest介绍 python自带的单元测试框架,常用在单元测试 在自动化测试中提供用例组织与执行 提供丰富的断言方法-验证函数等功能 加上HTMLTestRunner可以生成...所有的断言方法都有一个msg参数,如果指定msg参数的值,则将该信息作为失败的错误信息返回、 序号 断言方法 断言描述 1 assertEqual(arg1,arg2,msg=None) 验证arg1=...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    63920

    聊聊 Python 的单元测试框架(一):unittest

    的确,作为 Python 的标准库,它很优秀,并被广泛用于各个项目。但你知道吗?其实在 Python 众多项目中,主流的单元测试框架远不止这一个。...本系列文章将为大家介绍目前流行的 Python 的单元测试框架,讲讲它们的功能和特点并比较其异同,以让大家在面对不同场景、不同需求的时候,能够权衡利弊,选择最佳的单元测试框架。...discover 通过 -s 参数指定要自动发现的目录, -p 参数指定用例文件的名称模式 python -m unittest discover -s project_directory -p "test...八、小结 unittest[25] 作为 Python 标准库提供的单元测试框架,使用简单、功能强大,日常测试需求均能得到很好的满足。在不引入第三方库的情况下,是单元测试的不二之选。...在下篇文章中,我们将介绍第三方单元测试框架 nose 和 nose2,讲讲它对比于 unittest 有哪些改进,以至于让很多开发人员优先选择了它。

    70320

    Flask 使用unittest进行单元测试

    测试的分类: 测试从软件开发过程可以分为:单元测试、集成测试、系统测试等。在众多的测试中,与程序开发人员最密切的就是单元测试,因为单元测试是由开发人员进行的,而其他测试都由专业的测试人员来完成。...python中assert断言是声明布尔值为真的判定,如果表达式为假会发生异常。单元测试中,一般使用assert来断言结果。...单元测试的基本写法: 首先,定义一个类,继承自unittest.TestCase import unittest class TestClass(unitest.TestCase): pass...,编写测试代码 import unittest class TestClass(unittest.TestCase): #该方法会首先执行,相当于做测试前的准备工作 def setUp...通过postman测试接口这三种情况是可以的,但是如果每次都要手动去进行这样的单元测试,就会感觉很麻烦了。 那么下面可以将这三种情况写成单元测试的代码,来避免重复测试。

    3.1K20

    Python单元测试报告框架

    如果你是Java栈的同学,那么你可能知道extent report测试报告框架。而Python你可能知道HTMLTestRunner测试报告框架。...原因很简单,因为与Extent Report框架相比,HTMLTestRunner在界面的优越性上面还是有不少的差距,而PyTestReport则意在成为Python语言中的Extent Report。...setup.py build python setup.py install 使用 PyTestReport可用通过多种方式运行,分别如下: •单元测试•lib库引入(后续支持)•命令行(后续支持)•...REST API(后续支持) 单元测试使用样例 import unittest import pytestreport class MyTest(unittest.TestCase): def...注意:这种方式执行时,如果使用Pycharm等IDE,确保不是以IDE的内建单元测试框架来执行的;或者直接通过命令行来执行。

    1.2K40

    聊聊 Python 的单元测试框架(二):nose 和它的继任者 nose2

    nose[1] 是一个第三方单元测试框架,它完全兼容 unittest,并且号称是一个更好用的测试框架。...得益于 nose 丰富的插件生态,当 nose 本身不能够完全满足我们的测试需求时,可以通过安装插件,并在 nosetests 命令行指定该插件所提供的特定参数即可非常容易的使用插件。...unittest.TestCase 的测试类中使用 配置化 nose 期望所有插件的配置通过命令行参数进行配置 nose2 则通过配置文件进行控制,以最小化命令行参数让人读得更舒服 更多对比详见 官方文档...同时又引入插件体系,进一步将单元测试框架的能力提升了一个大大的台阶,这让很多在基础测试功能之上的高阶功能的实现和共享成为了可能。也难怪有众多开发者对它们情有独钟。...References [1] nose: https://nose.readthedocs.io/en/latest/ [2] unittest.TestCase: https://docs.python.org

    1.2K40

    Python接口自动化之unittest单元测试

    将访问接口的过程封装在函数里面; 接口测试就变成了单元测试; 单元测试就是通过传参,对某个模块、某个类、某个函数进行结果输出后验证的测试。 2 为什么要做单元测试?...Python里有两个单元测试类: 1.Unittest(Python自带); 2.Pytest(下载安装); 前者多用于接口自动化项目用,后者多用于WEB自动化项目、APP自动化项目。...二、unittest模块说明 1 unittest简介 unittest是Python自带的单元测试框,具备编写用例、组织用例、执行用例、输出报告等自动化框架的条件,可以用来作自动化测试框架的用例组织执行框架...三、unittest单元测试 1 实现思路 1.导入unittest模块、 被测文件或者其中的类; 2.创建一个测试类,并继承unittest.TestCase方法; 3.重写setUp和tearDown...(unittest.TestCase): def setUp(self): print("开始准备执行测试用例!")

    1.2K20

    Python unittest 框架,强大的测试利器

    总的来说,单元就是人为规定的最小的被测功能模块。unittest 框架作为 Python 强大的单元测试工具,在软件测试中发挥着重要作用。...Test Fixture(测试夹具)测试夹具在单元测试中起着至关重要的作用。它主要负责为测试用例提供一个稳定、一致的测试环境,包括环境搭建(setUp)和销毁(tearDown)。...可以通过命令行参数来指定特定的目录进行测试用例的自动发现。...执行指定用例指定测试模块:可以通过命令行参数指定要执行的测试模块。例如,运行python -m unittest test_module命令,将会执行名为test_module的模块中的所有测试用例。...unittest 框架作为 Python 内置的单元测试框架,具有广泛的应用前景。

    16210

    Python 单元测试 & 文档测试

    1.1 单元测试 1.1.1 单元测试编写 单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作。 编写一个Dict类,这个类的行为和dict一致,但是通过属性来访问。...):     #测试类从unittest.TestCase继承    def test_init(self):            #不是以test开头的方法不被执行        d = Dict(...() & tearDown() 这两个方法分别在单元测试中每个测试方法的前后被执行。...并且,Python内置的“文档测试”(doctest)模块可以直接提取注释中的代码并执行测试。 doctest严格按照Python交互式命令行的输入和输出来判断测试结果是否正确。...只有在命令行直接运行时,才执行doctest。所以,不必担心doctest会在非测试环境下执行。

    1.1K10

    unittest自动化测试框架_unittest批量加载用例

    python 里面的单元测试框架除了 unittest,还有一个 pytest 框架,这个实际上用的比较少,后面有空再继续介绍和分享。...import unittest class TestDemo(unittest.TestCase): def setUp(self): print("setUp") 复制代码...): def test_case1(self): print('test_case1') 复制代码 8.unittest.main():将一个单元测试模块变为可直接运行的测试脚本...: unittest.Testcase 自己创建的单元测试类都要继承它,它是所有单元测试类的基类 setUp 用于每个测试用例执行前的初始化工作 所有类中方法的入参为...当方法体内调用了 self.skipTest(reason) 方法,该测试用例还是会调用 setUp() 和 tearDown() 六、总结 本期,我们对Python提供的unittest单元测试模块

    81130

    单元测试方法以及实例

    ,而不是针对独立的片段 在众多的测试中,与程序开发人员最密切的就是单元测试,因为单元测试是由开发人员进行的,而其他测试都由专业的测试人员来完成。...python中assert断言是声明布尔值为真的判定,如果表达式为假会发生异常。单元测试中,一般使用assert来断言结果。 断言方法的使用: ?...单元测试的基本写法: 首先,定义一个类,继承自unittest.TestCase import unittest class TestClass(unitest.TestCase): pass...,编写测试代码 import unittest class TestClass(unittest.TestCase): #该方法会首先执行,相当于做测试前的准备工作 def setUp...class DatabaseTestCase(unittest.TestCase): def setUp(self): app.config['TESTING'] = True

    96831
    领券