测试函数我需要传递参数并查看输出是否与预期输出匹配。当函数的响应只是一个可以在测试函数内部定义的小数组或单行字符串时,这很容易,但假设我测试的函数修改了一个可能很大的配置文件。或者,如果我明确定义它,结果数组是4行长。我在哪里存储它,以便我的测试保持干净且易于维护?现在,如果那是字符串,我只需在.py测试附近放置一个文件,然后在测试中执行open():deftest_if_it_works():withopen('expected_asnwer_from_some_function.txt')asres_file:expected_data=res_file.read()input_d
我一直在尝试使用pytest运行单元测试在Python中。我编写了一个模块,其中包含一个类和该类中的一些方法。我为这个模块写了一个单元测试(用一个简单的断言语句来检查列表的相等性),我首先用一个列表来实例化这个类。然后我调用该对象的一个方法(来自类)。test.py和要测试的脚本都在同一个文件夹中。当我在其上运行pytest时,我得到“收集到0个项目”。我是pytest的新手,但我无法成功运行他们的示例。我在这里错过了什么?我在Windows7上运行Python3.5.1版和pytest2.8.1版。我的test.py代码:fromsort_algosimportSortsdefi
我一直在尝试使用pytest运行单元测试在Python中。我编写了一个模块,其中包含一个类和该类中的一些方法。我为这个模块写了一个单元测试(用一个简单的断言语句来检查列表的相等性),我首先用一个列表来实例化这个类。然后我调用该对象的一个方法(来自类)。test.py和要测试的脚本都在同一个文件夹中。当我在其上运行pytest时,我得到“收集到0个项目”。我是pytest的新手,但我无法成功运行他们的示例。我在这里错过了什么?我在Windows7上运行Python3.5.1版和pytest2.8.1版。我的test.py代码:fromsort_algosimportSortsdefi
在pytest的文档中列出了各种测试用例的示例。其中大多数显示功能测试。但是我缺少一个如何测试类和类方法的示例。假设我们要测试的模块cool.py中有以下类:classSuperCool(object):defaction(self,x):returnx*xtests/test_cool.py中相应的测试类看起来如何?classTestSuperCool():deftest_action(self,x):passtest_action()如何用于测试action()? 最佳答案 测试类方法所需要做的就是实例化该类,并在该实例上调用该
在pytest的文档中列出了各种测试用例的示例。其中大多数显示功能测试。但是我缺少一个如何测试类和类方法的示例。假设我们要测试的模块cool.py中有以下类:classSuperCool(object):defaction(self,x):returnx*xtests/test_cool.py中相应的测试类看起来如何?classTestSuperCool():deftest_action(self,x):passtest_action()如何用于测试action()? 最佳答案 测试类方法所需要做的就是实例化该类,并在该实例上调用该
我在使用tox时遇到了一个奇怪的问题,py.test,coverage和pytest-cov:当py.test与--cov选项从tox启动,似乎需要__init__.pytests中的文件不是很明显的文件夹。在写这篇文章时,我通过添加上述tests/__init__.py解决了最初的问题,但到现在我还不完全明白为什么它会起作用或不起作用,所以我仍然在寻求帮助。详情请看下文。我在SO上找到了一个相关问题,但这只会让人更加困惑,因为答案似乎与我目前所想出的相反:`py.test`and`__init__.py`files另请参阅此处的官方文档:py.test-GoodIntegrati
我在使用tox时遇到了一个奇怪的问题,py.test,coverage和pytest-cov:当py.test与--cov选项从tox启动,似乎需要__init__.pytests中的文件不是很明显的文件夹。在写这篇文章时,我通过添加上述tests/__init__.py解决了最初的问题,但到现在我还不完全明白为什么它会起作用或不起作用,所以我仍然在寻求帮助。详情请看下文。我在SO上找到了一个相关问题,但这只会让人更加困惑,因为答案似乎与我目前所想出的相反:`py.test`and`__init__.py`files另请参阅此处的官方文档:py.test-GoodIntegrati
只是想知道,有没有(更)优雅的方式使用笛卡尔积进行参数化?到目前为止,这是我想出的:numbers=[1,2,3,4,5]vowels=['a','e','i','o','u']consonants=['x','y','z']cartesian=[elemforeleminitertools.product(*[numbers,vowels,consonants])]@pytest.fixture(params=cartesian)defsomeparams(request):returnrequest.paramdeftest_something(someparams):pass至少
只是想知道,有没有(更)优雅的方式使用笛卡尔积进行参数化?到目前为止,这是我想出的:numbers=[1,2,3,4,5]vowels=['a','e','i','o','u']consonants=['x','y','z']cartesian=[elemforeleminitertools.product(*[numbers,vowels,consonants])]@pytest.fixture(params=cartesian)defsomeparams(request):returnrequest.paramdeftest_something(someparams):pass至少
我正在使用Jenkins、Python、Selenium2(webdriver)和Py.test框架为Web测试创建测试用例。到目前为止,我按以下结构组织测试:每个Class都是TestCase,每个test_方法都是TestStep。当一切正常时,此设置效果很好,但是当一个步骤崩溃时,其余的“测试步骤”就会变得疯狂。在teardown_class()的帮助下,我能够将失败包含在类(测试用例)中,但是我正在研究如何改进它。如果其中一个失败了,我需要以某种方式跳过(或xfail)一个类中的其余test_方法,以便其余测试用例不会运行并标记为失败(因为那会是误报)谢谢!更新:我没有寻找或回