Installs into .claude/skills of the current project.
Are you the author of Test:Write?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/rossoctl-test-write)
---
name: test:write
description: Write E2E and unit tests following Rossoctl testing standards
---
# Write Tests
Write tests that follow Rossoctl testing standards.
## When to Use
- Adding a new feature that needs tests
- Fixing a bug (write regression test first)
- Improving test coverage for existing code
## Test Structure
```
rossoctl/tests/
├── e2e/
│ ├── common/ # Tests that run on all platforms
│ │ ├── test_agent_*.py
│ │ ├── test_mlflow_*.py
│ │ └── conftest.py
│ ├── conftest.py # Shared fixtures
│ └── test_*.py # Platform-specific tests
└── requirements.txt
```
## Test Template
```python
"""Test description - what scenario is being validated."""
import pytest
class TestFeatureName:
"""Tests for [feature] functionality."""
def test_specific_behavior(self, fixture):
"""Verify [specific behavior] when [condition]."""
# Arrange
expected = "specific_value"
# Act
result = do_something(fixture)
# Assert - ALWAYS assert specific values
assert result.status_code == 200, f"Expected 200, got {result.status_code}"
assert result.json()["key"] == expected
```
## Standards
1. **One assertion per concept** — test one thing per test method
2. **Descriptive names** — `test_agent_returns_weather_for_valid_city`
3. **AAA pattern** — Arrange, Act, Assert
4. **Specific assertions** — `assert x == 42` not `assert x`
5. **Timeout handling** — use `pytest.mark.timeout(300)` not `sleep()`
6. **Skip with reason** — `@pytest.mark.skip(reason="MLflow disabled in Kind")`
## Fixtures (conftest.py)
Key fixtures available:
```python
@pytest.fixture
def agent_url():
"""Agent URL from env or port-forward."""
@pytest.fixture
def kubeconfig():
"""KUBECONFIG path."""
@pytest.fixture
def rossoctl_config():
"""Platform config from ROSSOCTL_CONFIG_FILE."""
```
## After Writing
1. Run `test:review` to verify quality
2. Run `test:run-kind` or `test:run-hypershift` to execute
3. Use `git:commit` to commit
## Related Skills
- `test:review` - Review test quality before committing
- `test:run-kind` - Run on Kind cluster
- `test:run-hypershift` - Run on HyperShift cluster
- `tdd:ci` - Full TDD workflow