问题标签 [pytest-dependency]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4704 浏览

python - 具有pytest依赖关系的文件之间的依赖关系?

我正在使用具有 pytest 依赖关系的 pytest 开发功能测试套件。我 99% 都喜欢这些工具,但我不知道如何让一个文件中的测试依赖于另一个文件中的测试。理想情况下,我希望对依赖者进行零更改,并且只更改依赖者中的内容。我希望测试能够像这样依赖 test_one:

像这样:

当我pytest test_one.py正确运行它时,它会订购东西(test_point_one如果test_one失败则跳过),但是当我运行时pytest test_two.py,它会跳过test_two.

我尝试添加import test_one到 test_two.py 无济于事,并验证了导入实际上是正确导入的——它不仅仅是被 pytest 忽略了“哦,嘿,我已经完成了收集测试,我什么都做不到”不要跳过!懒惰万岁!”

test_two()我知道我可以在技术上投入test_one.py并且它会起作用,但我不想只是将每个测试转储到一个文件中(这最终会演变成)。我试图通过将所有东西放在正确的架子上来保持物品整洁,而不仅仅是将它们全部推入壁橱。

此外,我意识到如果我能做到这一点,就会存在创建循环依赖的可能性。我没关系。如果我像那样朝自己的脚开枪,老实说,我活该。

0 投票
1 回答
770 浏览

python - 如何告诉 pytest-dependency 暂时忽略测试依赖项?

我有一个使用 pytest-dependency 的功能测试套件,可以在它们依赖的其他测试失败时跳过测试。这样,例如,如果登录页面损坏,我会收到一个测试失败说“登录页面损坏”,而不是一堆测试失败说“我无法登录用户 X”、“我不能登录用户 Y”等。

这对于运行整个套件非常有用,但我正在尝试缩短我的编辑-编译-测试循环,而现在最慢的一点是测试我的测试。如果我正在处理的测试有一堆它依赖的其他测试,那么它们都必须成功才能不跳过我正在尝试测试的测试。因此,我要么必须运行整个依赖关系树,要么注释掉我的@pytest.mark.dependency(...)装饰器(这是我作为人类必须记住要做的另一件事)。从技术上讲,这些依赖的测试并没有使它们的依赖者能够运行——我想要这些依赖的唯一原因是让我更容易对测试失败进行分类。

是否有一个命令行参数可以告诉 pytest-dependency 不要因为依赖项而跳过某些内容,或者告诉 pytest 在此运行(并且仅此运行)中不要使用 pytest-dependency 插件?

0 投票
1 回答
509 浏览

python - Pytest 参数化依赖

我有一个函数和一个测试

我正在使用 pytest 和 pytest_dependency 模块。foo是在许多其他测试中使用的函数。我有一个要依赖的函数,test_foo下面的代码不起作用:

理论上,如果test_foo失败,test_bar则将被跳过。但是,当我参数化 时,无论 的结果如何,都会跳过 的test_bar每个实例化。test_bartest_foo

为了澄清,此代码按预期工作(未跳过 test_bar):

0 投票
0 回答
535 浏览

python - Pytest:如果另一个文件的测试失败,如何在一个文件中设置要跳过的测试

我需要组织我的测试用例,因为我有一个大型测试套件。如果在另一个 Python 类中依赖的测试失败,我看不到要跳过一个 Python 类中的测试。

这是我的基本设置:

TestNegativeWorkflowClone1之前运行TestWorkflow1。我已经尝试过此票的答案中建议的内容:Dependencies between files with pytest-dependency?

那也没有用。TestNegativeWorkflowClone1仍然运行之前TestWorkflow1

我尝试在依赖装饰中使用文件名TestNegativeWorkflowClone1

仍然没有工作。TestNegativeWorkflowClone1仍然先运行。

0 投票
3 回答
827 浏览

python - 如何进行取决于参数化测试的测试。(Pytest)

为什么跳过第二次测试?我希望第二个测试依赖于三个参数化为 test_first 的测试。如何让它发生?

输出是

我想t.py::test_second PASSED

ps 可能是之前问过的,但我还是决定发布这个问题,因为很难找到关于这个问题的简要表述的问题。

0 投票
0 回答
342 浏览

python - 在 pytest-dependency 中,只有当所有多个参数化测试用例都通过时,才有办法执行测试?

我有一堆在 Pytest 中运行的测试,它们依赖于在一个类中运行的一系列测试。我正在使用 pytest-dependency 在另一个模块中运行其他一些测试,但前提是此依赖类中的所有测试都通过了。

这是我绝对需要通过的一组测试才能继续进行其余的测试。它在类中有两个方法:

现在,当我在随后的测试中只添加一个依赖标记时,它会按预期工作。如果 TestThis::test_that 中的任何测试失败,则跳过其余测试。

但是,当我添加两个如下所示的依赖项标记时,即使依赖项中的一个或多个测试失败,测试也会照常进行。这是意外的行为 AFAIK。

寻找这个问题的可能解决方案,因为我无法将这两种依赖方法合并为一个以供我的测试套件的其余部分使用。

0 投票
1 回答
1036 浏览

python - pytest-dependency 跳过依赖测试

我想运行一些测试,这些测试依赖于使用pytestpytest-dependency的其他测试的成功。

我有这个目录结构:

a_test.py的内容:

b_test.py 的内容:

要执行测试,我从根目录运行此命令:python -m pytest --rootdir=tests

我的问题是依赖项(test_a 和 test_b)通过,但是依赖项测试(test_c)被跳过

根据pytest-dependency 的文档

...

请注意,会话范围内的引用必须使用依赖项的完整节点 ID。此节点 id 由模块路径、测试类的名称(如果适用)和测试的名称组成,以双冒号“::”<br/>
...

知道为什么它不能像预期的那样工作吗?

0 投票
1 回答
447 浏览

python - pytest 不承认基类中的 PASSED 依赖项导致派生类中的 SKIPPED 测试

我有一个小项目,我在其中使用pytestpytest-dependencytox来开发一些代码的集成测试。到目前为止,我使用了一个基类 ( ),在根目录中有一些常见的测试,并在它旁边BTestClass的每个代码组件的特定测试中实现了一个继承自.test_Component.py fileTestCBTestClass

在那之前一切都很好。现在我想BTestClass2为另一组组件添加一个。所以我又加了一层继承,但是现在不行了,pytest验证了常用A的测试然后跳过了依赖它的测试。我不知道为什么。

这是文件系统布局:

common\A.py

B.py

test_C.py

pytest输出:

知道为什么test_b会跳过而不执行吗?

编辑:如果我BTestClass独立制作,从图片中删除A/ ATestClass,它工作正常。

0 投票
0 回答
131 浏览

python - 如何获取 pytest 依赖项的返回/收益值

pytest-dependency用来创建对测试的依赖。我希望从属测试从另一个测试中获取返回值。

例子:

如何从依赖项中获得响应?

正在使用的包:

0 投票
1 回答
63 浏览

pytest - pytest 依赖项跳过参数化测试

我正在使用 pytest 编写测试。我有两个测试,一个取决于另一个,我为此使用 pytest-dependency==0.5.1 。当我有两个相互依赖但都参数化的测试时,会发生一些奇怪的事情——即使独立测试成功,也会跳过依赖测试。这是我的代码:

当我运行 pytest 时,我得到:

如果我取消参数化,一切都很好:

为什么会发生,我该如何解决?