用于语言服务器端到端测试的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 查看哈希值)