跳转到主要内容

用于语言服务器端到端测试的pytest插件

项目描述

pytest-lsp:使用pytest进行语言服务器端到端测试

pytest-lsp 是一个pytest插件,用于编写语言服务器的端到端测试。

pytest-lsp 通过在子进程中运行语言服务器并与它通过stdio进行通信来工作,就像真实的语言客户端一样。这也意味着 pytest-lsp 可以用来测试任何用任何语言编写的语言服务器 - 而不仅仅是Python。

pytest-lsp 依赖于 pygls 库来实现其语言服务器协议。

有关入门细节,请参阅 文档

import sys

import pytest_lsp
from lsprotocol.types import (
    CompletionParams,
    InitializeParams,
    Position,
    TextDocumentIdentifier,
)
from pytest_lsp import (
    ClientServerConfig,
    LanguageClient,
    client_capabilities,
)


@pytest_lsp.fixture(
    config=ClientServerConfig(
        server_command=[sys.executable, "-m", "esbonio"],
    ),
)
async def client(lsp_client: LanguageClient):
    # Setup
    response = await lsp_client.initialize_session(
        InitializeParams(
            capabilities=client_capabilities("visual-studio-code"),
            root_uri="file:///path/to/test/project/root/",
        )
    )

    yield

    # Teardown
    await lsp_client.shutdown_session()


async def test_completion(client: LanguageClient):
    result = await client.text_document_completion_async(
        params=CompletionParams(
            position=Position(line=5, character=23),
            text_document=TextDocumentIdentifier(
                uri="file:///path/to/test/project/root/test_file.rst"
            ),
        )
    )

    assert len(result.items) > 0

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

pytest_lsp-0.4.3.tar.gz (26.2 kB 查看哈希值)

上传时间

构建分布

pytest_lsp-0.4.3-py3-none-any.whl (24.1 kB 查看哈希值)

上传时间 Python 3

由以下机构支持