run-tests

Руководство по локальному запуску тестов pytest. Используйте это при запуске тестов для проверки изменений кода.

npx skills add https://github.com/microsoft/semantic-link-labs --skill run-tests

Running Tests

This skill covers running pytest tests for the Semantic Link Labs project.

When to Use This Skill

Use this skill when you need to:

  • Run unit tests to verify code changes
  • Run specific tests by name
  • Debug failing tests
  • Validate changes before committing

Test Framework

ComponentDetails
Frameworkpytest
Locationtests/ directory
Configurationpyproject.toml

Prerequisites

Install Development Dependencies

# Install package in editable mode with test dependencies
pip install -e ".[test]"

Environment Setup

Create conda environment from environment.yml:

conda env create -f environment.yml
conda activate fabric
pip install -e .

Running Tests

Basic Commands

# Run all tests
pytest -s tests/

# Run with verbose output
pytest -sv tests/

# Run specific test file
pytest -s tests/test_example.py

# Run specific test by name pattern
pytest -s tests/ -k test_my_function

# Run multiple tests by pattern
pytest -s tests/ -k "test_list or test_create"

# Stop on first failure
pytest -sx tests/

Test Discovery

pytest automatically discovers tests in:

  • Files named test_*.py or *_test.py
  • Functions named test_*
  • Classes named Test*

Test Output Options

Verbose Output

# Show test names and results
pytest -v tests/

# Show test names with print statements
pytest -sv tests/

Show Print Statements

The -s flag captures stdout:

# Show print output during tests
pytest -s tests/

Show Test Durations

# Show slowest 10 tests
pytest --durations=10 tests/

Filtering Tests

By Test Name

# Run tests matching pattern
pytest -k "workspace" tests/

# Run tests NOT matching pattern
pytest -k "not slow" tests/

# Combine patterns
pytest -k "workspace and not admin" tests/

By File

# Run specific test file
pytest tests/test_workspaces.py

# Run tests in directory
pytest tests/admin/

Debugging Failed Tests

Stop on First Failure

pytest -x tests/

Enter Debugger on Failure

pytest --pdb tests/

Show Local Variables on Failure

pytest -l tests/

Increase Verbosity

pytest -vvv tests/

Test Structure

Basic Test Example

import pytest
import pandas as pd


def test_my_function_returns_dataframe():
    """Test that my_function returns a DataFrame."""
    from sempy_labs import my_function

    result = my_function()

    assert isinstance(result, pd.DataFrame)


def test_my_function_with_parameter():
    """Test my_function with specific parameter."""
    from sempy_labs import my_function

    result = my_function(workspace="Test Workspace")

    assert not result.empty
    assert "Name" in result.columns

Test with Expected Exception

def test_my_function_raises_on_invalid_input():
    """Test that my_function raises ValueError on invalid input."""
    from sempy_labs import my_function

    with pytest.raises(ValueError, match="Invalid"):
        my_function(invalid_param="bad value")

CI/CD Integration

The project uses GitHub Actions for CI. See .github/workflows/build.yaml:

- name: Test with pytest
  shell: bash -el {0}
  run: |
    pytest -s tests/

Pre-Commit Test Checklist

Before committing code changes:

# Run all tests
pytest -s tests/

# Run tests for modified area
pytest -s tests/ -k relevant_test_pattern

# Check for any failures
# If failures, fix code and re-run

Common Test Issues

Import Errors

If tests fail with import errors:

# Ensure package is installed in editable mode
pip install -e .

Missing Dependencies

If tests fail with missing package:

# Install test dependencies
pip install -e ".[test]"

Environment Issues

If tests behave unexpectedly:

# Recreate conda environment
conda env remove -n fabric
conda env create -f environment.yml
conda activate fabric
pip install -e .

Больше skills от microsoft

oss-growth
microsoft
Персона OSS-хакера роста
agent-framework-azure-ai-py
microsoft
Создание агентов Azure AI Foundry с использованием Microsoft Agent Framework Python SDK (agent-framework-azure-ai). Используйте при создании постоянных агентов с AzureAIAgentsProvider, применении размещенных инструментов (интерпретатор кода, поиск файлов, веб-поиск), интеграции MCP-серверов, управлении потоками бесед или реализации потоковых ответов. Охватывает функциональные инструменты, структурированные выходные данные и агентов с несколькими инструментами.
development
airunway-aks-setup
microsoft
Настройка AI Runway на AKS — от пустого кластера до работающей модели. Охватывает проверку кластера, установку контроллера, оценку GPU, настройку провайдера и первое развертывание. КОГДА: «настроить AI Runway», «подключить кластер AKS», «установить AI Runway», «airunway setup», «развернуть модель на AKS», «GPU-инференс на AKS», «настройка KAITO на AKS», «запуск LLM на AKS», «vLLM на AKS», «настройка обслуживания моделей на AKS», «контроллер AI Runway».
devops
appinsights-instrumentation
microsoft
Руководство по инструментированию веб-приложений с помощью Azure Application Insights. Содержит шаблоны телеметрии, настройку SDK и справочники по конфигурации. КОГДА: как инструментировать приложение, SDK App Insights, шаблоны телеметрии, что такое App Insights, руководство по Application Insights, примеры инструментирования, лучшие практики APM.
devops
applicationinsights-web-ts
microsoft
Инструментируйте браузерные/веб-приложения с помощью JavaScript SDK Application Insights (@microsoft/applicationinsights-web). Используйте для мониторинга реальных пользователей (RUM) — просмотры страниц, клики, зависимости AJAX/fetch, исключения, пользовательские события и трассировки агентов GenAI на стороне браузера, коррелируемые с бэкенд-трассировками OpenTelemetry. Охватывает скрипт загрузчика SDK и настройку npm, расширения фреймворков (React, React Native, Angular), Click Analytics, инициализаторы телеметрии и семантические конвенции OTel GenAI для спанов агента/инструмента/модели, генерируемых из браузера.
devops
azure-ai-anomalydetector-java
microsoft
Создавайте приложения для обнаружения аномалий с помощью Azure AI Anomaly Detector SDK для Java. Используйте при реализации одномерного/многомерного обнаружения аномалий, анализа временных рядов или мониторинга на основе ИИ.
development
azure-ai-language-conversations-py
microsoft
Реализация понимания разговорного языка (CLU) с использованием Python SDK azure-ai-language-conversations. Используйте при работе с ConversationAnalysisClient для анализа намерений и сущностей в разговоре, создании NLP-функций или интеграции языкового понимания в приложения.
development
azure-ai-ml-py
microsoft
Azure Machine Learning SDK v2 для Python. Используется для рабочих областей ML, заданий, моделей, наборов данных, вычислений и конвейеров. Триггеры: "azure-ai-ml", "MLClient", "workspace", "model registry", "training jobs", "datasets".
development