run-tests

作成者: microsoft

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 .

microsoftのその他のスキル

oss-growth
microsoft
OSS成長ハッカーのペルソナ
official
winapp-ui-automation
microsoft
コマンドラインからUI Automation(UIA)を使用して、実行中のWindowsアプリのUIを検査および操作します。AIエージェントや開発者がUIを検査する必要がある場合に使用します…
official
accessibility-aria-expert
microsoft
React/Fluent UIのWebビューにおけるアクセシビリティ問題を検出・修正します。スクリーンリーダー互換性のコードレビュー時、ARIAラベルの修正時、および…の確認時に使用します。
official
generate-canvas-app
microsoft
[DEPRECATED — 代わりに canvas-app を使用してください] 完全なPower Appsキャンバスアプリを生成します。
official
django
microsoft
Djangoウェブ開発のベストプラクティス(モデル、ビュー、テンプレート、テストを含む)
official
github-issue-creator
microsoft
生のメモ、エラーログ、音声入力、スクリーンショットを、簡潔なGitHub Flavored MarkdownのIssueレポートに変換します。ユーザーがバグ情報やエラーを貼り付けた際に使用します。
official
python-package-management
microsoft
依存関係管理にuvを使用し、タスク自動化にpoethepoetを使用します。
official
runtime-validation
microsoft
移行アプリケーションのランタイム検証 — テスト戦略(計画フェーズ)とテスト実行(検証フェーズ)をカバー:起動検証、…
official