npx skills add ...
npx skills add microsoft/semantic-link-labs --skill run-tests
npx skills add microsoft/semantic-link-labs --skill run-tests
Guide for running pytest tests locally. Use this when running tests to verify code changes.
This skill covers running pytest tests for the Semantic Link Labs project.
Use this skill when you need to:
| Component | Details |
|---|---|
| Framework | pytest |
| Location | tests/ directory |
| Configuration | pyproject.toml |
Create conda environment from environment.yml:
pytest automatically discovers tests in:
test_*.py or *_test.pytest_*Test*The -s flag captures stdout:
The project uses GitHub Actions for CI. See .github/workflows/build.yaml:
Before committing code changes:
If tests fail with import errors:
If tests fail with missing package:
If tests behave unexpectedly:
# Show test names and results
pytest -v tests/
# Show test names with print statements
pytest -sv tests/# Show print output during tests
pytest -s tests/# Show slowest 10 tests
pytest --durations=10 tests/# 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/# Run specific test file
pytest tests/test_workspaces.py
# Run tests in directory
pytest tests/admin/pytest -x tests/pytest --pdb tests/pytest -l tests/pytest -vvv tests/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.columnsdef 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")- name: Test with pytest
shell: bash -el {0}
run: |
pytest -s tests/# 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# Ensure package is installed in editable mode
pip install -e .# Install test dependencies
pip install -e ".[test]"# Recreate conda environment
conda env remove -n fabric
conda env create -f environment.yml
conda activate fabric
pip install -e .