gpt4 book ai didi

运行单个测试的 Python 测试 fixture ?

转载 作者:太空狗 更新时间:2023-10-30 02:39:08 24 4
gpt4 key购买 nike

我正在寻找像 ruby​​ rspec 的 focus 元数据或 elixir 的混合标签这样的东西来运行单个 python 测试。

Ruby RSpec 示例:

# $ rspec spec
it 'runs a single test', :focus do
expect(2).to eq(2)
end

Elixir ExUnit 和混合示例:

# $ mix test --only focus
@tag :focus
test "only run this test" do
assert true
end

这是否可能/适用于任何 python 测试运行器和 fixture 组合?通过命令行参数指定嵌套的 module.class.test_name 来运行单个测试在较大的项目中可能会变得非常冗长。

所以像这样:

所需的 Python 代码:

# $ nosetests --only focus

from tests.fixtures import focus

class TestSomething(unittest.TestCase):
@focus
def test_all_the_things(self):
self.assertEqual(1, 1)

最佳答案

问好pytest mark .您可以创建焦点标记,分配给任何测试用例或方法,然后使用 pytest -v -m focus 命令运行测试。例如:

import unittest
import pytest

class TestOne(unittest.TestCase):
def test_method1(self):
# I won't be executed with focus mark
self.assertEqual(1, 1)

@pytest.mark.focus
def test_method2(self):
# I will be executed with focus mark
self.assertEqual(1, 1)

将运行 test_method2。要在某个 TestCase 中运行所有方法,您只需标记一个类:

import unittest
import pytest

@pytest.mark.focus
class TestOne(unittest.TestCase):
...

您需要在 pytest.ini 中注册您的自定义标记,例如

[pytest]
markers =
focus: what is being developed right now

要查看可用标记,请运行 pytest --markers

关于运行单个测试的 Python 测试 fixture ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45267486/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com