我正在尝试对一些使用日志库的算法进行单元测试。我有一个可以创建记录器的装置。在我的第一个测试用例中,我没有使用这个fixture,而是使用打印记录到标准输出。此测试用例通过。在我的第二个测试用例中,我使用了这个fixture,但没有在pytest文档中记录。我只是在我的测试中调用相关函数来获取记录器。然后我使用记录器记录到标准输出。此测试用例通过。在我的第三个测试用例中,我按照pytest文档中的说明使用了这个fixture。fixture作为参数传递给测试函数。然后我使用记录器记录到标准输出。此测试用例失败!它在stdout中找不到任何内容。但是在错误消息中,它说我的日志在捕获的标准
将覆盖与pytests结合使用是一个非常有用的工具。Html报告允许很好的输出,但是通过命令行找不到修改默认输出目录(htmlcov)的选项示例命令行:python-mpytestlib_being_tested\tests--covlib_being_tested.module--cov-report=html 最佳答案 现在(3年后)您可以直接在命令行中更改默认输出目录:python-mpytest--cov--cov-report=html:reports/html_dir--cov-report=xml:reports/co
我正在使用pythonpytest来运行我的单元测试。我的项目文件夹是:Main-包含数据文件:A.txtMain\Tests-我运行pytest的文件夹Main\Tests\A_test-包含测试文件的文件夹A_test文件夹中的测试使用文件A.txt(位于Main文件夹中)。我的问题是,当我运行py.test时,测试失败,因为它找不到A.txt。我发现是因为pytest在运行测试时使用了路径Main\Test,而不是将路径改为Main\Tests\A_test(我是在测试文件中打开A.txt时使用相对路径)我的问题:有没有办法让pytest将目录更改为它为每个测试执行的测试文件夹?
我正在开始使用pytest。我已经配置了pytest,无论如何我找不到关于使用pytest进行Django特定测试的资源。如何使用pytest_django测试模型?我已经问了一个关于单元测试的问题,howdoIefficientlytestthisDjangomodel?我想知道如何使用py.test编写相同的测试?在模型下方添加用unittest编写的测试。被测模型是,classUser(AbstractBaseUser,PermissionsMixin):username=models.CharField(max_length=25,unique=True,error_messa
我用一个新的更简单的假设置重新创建了这个问题。我有一个框架需要来自pytest的命令channel变量。此变量称为环境,但当我尝试访问该变量时,我得到一个AttributeError:“模块”对象没有属性“配置”。这是我的测试设置:我知道py.test按以下顺序加载:Pytest插件外部插件conftest.py文件,从外层文件到内层文件。我想我遇到了一个问题,当我加载内部conftest.py时,我尝试导入框架。当我导入框架时,它会尝试访问py.test变量。这个变量,即使pytest已经在我的outer-conftest.py的pytest_addoption()部分中看到它,还没
我还没有看到这个特定问题(TestcoveragetoolforBehavetestframework)的答案,而且我还没有看到任何Google搜索结果产生足够的答案。因此……如何从Behave获取代码覆盖率报告?我发现很难相信没有Python开发人员使用BDD方法,我发现更难以相信那些使用BDD的Python开发人员在没有来自功能测试的代码覆盖率统计信息的情况下这样做。Coverage.py可以用来驱动Behave以产生代码覆盖率吗?怎么办? 最佳答案 我不知道如何使用behave,但我使用了Cucumber对于BDD,我认为这可
我有一些使用pytest和fixtures编写的测试,例如:classTestThing:@pytest.fixture()deftemp_dir(self,request):my_temp_dir=tempfile.mkdtemp()deffin():shutil.rmtree(my_temp_dir)request.addfinalizer(fin)returnmy_temp_dirdeftest_something(self,temp_dir)withopen(os.path.join(temp_dir,'test.txt'),'w')asf:f.write('test')这在从
如何从配置了参数化的集合中运行单个测试?假设我有以下测试方法:@pytest.mark.parametrize(PARAMETERS_LIST,PARAMETERS_VALUES)deftest_my_feature(self,param1,param2,param3):"""testdoc"""ifparam1=='value':assertTrueelse:print'notvalue'assertFalse我有3个参数,我为它们生成了一个包含15个不同可能值的列表,以测试函数。我怎样才能只运行其中一个?除了显而易见的方式-给出单个值而不是15。 最佳答
是否可以仅在特定标记上使用autouse=True来阻止“功能范围”固定装置的执行?我将以下装置设置为自动使用,以便自动模拟所有传出请求:@pytest.fixture(autouse=True)defno_requests(monkeypatch):monkeypatch.setattr("requests.sessions.Session.request",MagicMock())但是我有一个名为endtoend的标记,我用它来定义一系列测试,这些测试允许发出外部请求以进行更稳健的端到端测试。我想在所有测试(绝大多数)中注入(inject)no_requests,但不会在如下测试中
我是djangounittest和pytest的新手。但是,我开始觉得pytest测试用例更简洁、更清晰。这是我的测试用例:classOrderEndpointTest(TestCase):defsetUp(self):user=User.objects.create_superuser(username='admin',password='password',email='pencil@gmail.com')mommy.make(CarData,_quantity=1)mommy.make(UserProfile,_quantity=1,user=user)deftest_get_o