Run integration tests validating cross-component requirements and system behavior. Executes BDD scenarios, API tests, and end-to-end tests. Use to validate integrated system or as pre-deployment quality gate.
/plugin marketplace add foolishimp/ai_sdlc_method/plugin install aisdlc-methodology@aisdlcThis skill is limited to using the following tools:
Skill Type: Test Runner Purpose: Execute integration tests validating system behavior Prerequisites: Integration tests exist (BDD scenarios, API tests, E2E tests)
You are running integration tests to validate the integrated system.
Integration tests validate:
Find all integration test files:
# BDD scenarios
find features -name "*.feature"
# Integration test directories
find tests/integration -name "test_*.py"
find tests/e2e -name "test_*.py"
find tests/api -name "test_*.py"
Execute Gherkin scenarios:
# Behave (Python)
behave features/ --format progress
# Cucumber (JavaScript)
npm run cucumber
# Cucumber (Java)
mvn test -Dcucumber.options="features/"
Output:
Feature: User Authentication
Scenario: Successful login PASSED
Scenario: Login fails with invalid email PASSED
Scenario: Account locks after 3 failures PASSED
Feature: Payment Processing
Scenario: Successful card payment PASSED
Scenario: Payment fails invalid card PASSED
5 scenarios (5 passed)
27 steps (27 passed)
Duration: 2.3s
Execute API test suite:
# Python (pytest with requests)
pytest tests/integration/api/ -v
# JavaScript (supertest)
npm test tests/integration/api
# Java (RestAssured)
mvn test -Dtest=ApiIntegrationTest
Example tests:
# tests/integration/api/test_auth_api.py
# Validates: <REQ-ID> (API integration)
def test_login_api_returns_token():
response = requests.post(
"http://localhost:8000/api/auth/login",
json={"email": "user@example.com", "password": "SecurePass123!"}
)
assert response.status_code == 200
assert "token" in response.json()
def test_login_api_rejects_invalid_email():
response = requests.post(
"http://localhost:8000/api/auth/login",
json={"email": "invalid", "password": "SecurePass123!"}
)
assert response.status_code == 400
assert response.json()["error"] == "Invalid email format"
Execute tests with real database:
# tests/integration/database/test_user_db.py
# Validates: <REQ-ID> (database integration)
def test_user_registration_persists_to_database(db_session):
"""Test user registration saves to database"""
user = register("new@example.com", "SecurePass123!")
# Verify user in database
db_user = db_session.query(User).filter_by(email="new@example.com").first()
assert db_user is not None
assert db_user.email == "new@example.com"
Execute full user journeys:
# tests/e2e/test_user_flow.py
# Validates: INT-100 (complete user authentication flow)
def test_complete_registration_and_login_flow(browser):
"""Test complete user journey: register → login → access protected page"""
# Register
browser.visit("/register")
browser.fill("email", "newuser@example.com")
browser.fill("password", "SecurePass123!")
browser.click("Register")
assert browser.is_text_present("Registration successful")
# Login
browser.visit("/login")
browser.fill("email", "newuser@example.com")
browser.fill("password", "SecurePass123!")
browser.click("Login")
assert browser.is_text_present("Welcome")
# Access protected page
browser.visit("/dashboard")
assert browser.is_text_present("Dashboard") # Not redirected to login
Collect all test results:
Integration Test Summary:
BDD Scenarios:
✓ 12 scenarios, all passing
✓ 67 steps, all passing
✓ Duration: 5.2s
API Integration Tests:
✓ 24 tests passing
✓ Duration: 3.8s
Database Integration Tests:
✓ 15 tests passing
✓ Duration: 8.1s
End-to-End Tests:
✓ 6 tests passing
✓ Duration: 42.5s
Total: 57 integration tests
Pass Rate: 100%
Total Duration: 59.6s
Show which requirements validated:
Requirements Validated by Integration Tests:
<REQ-ID> (User login):
✓ BDD: features/authentication.feature (3 scenarios)
✓ API: tests/integration/api/test_auth_api.py (5 tests)
✓ E2E: tests/e2e/test_user_flow.py (1 test)
Total: 9 integration tests ✅
<REQ-ID> (Payment processing):
✓ BDD: features/payments.feature (2 scenarios)
✓ API: tests/integration/api/test_payment_api.py (8 tests)
Total: 10 integration tests ✅
REQ-NFR-PERF-001 (Performance):
✗ No integration tests ❌
Recommendation: Add performance tests
Coverage: 90% of requirements have integration tests
[RUN INTEGRATION TESTS]
Test Suites Executed:
✅ BDD Scenarios (features/):
12 scenarios (12 passed)
67 steps (67 passed)
Duration: 5.2s
✅ API Integration (tests/integration/api/):
24 tests (24 passed)
Duration: 3.8s
✅ Database Integration (tests/integration/database/):
15 tests (15 passed)
Duration: 8.1s
✅ End-to-End (tests/e2e/):
6 tests (6 passed)
Duration: 42.5s
Total Integration Tests: 57
Pass Rate: 100% (57/57) ✅
Total Duration: 59.6s
Requirements Coverage (Integration Tests):
✅ <REQ-ID>: 9 tests
✅ <REQ-ID>: 7 tests
✅ <REQ-ID>: 10 tests
⚠️ REQ-NFR-PERF-001: 0 tests (missing)
Integration Test Coverage: 90% (27/30 requirements)
Homeostasis Status: ⚠️ MINOR DEVIATION
- 3 requirements without integration tests
- Recommend: Add integration tests for REQ-NFR-PERF-001, etc.
✅ Integration Tests Complete!
All tests passing
Minor gaps identified
Before invoking:
plugins:
- name: "@aisdlc/testing-skills"
config:
integration_tests:
auto_run_on_commit: false
timeout_seconds: 300
parallel_execution: true
frameworks:
bdd: "behave"
api: "pytest"
e2e: "selenium"
require_for_deploy: true
Why integration tests?
Integration vs Unit Tests:
Unit Tests: Test individual functions/classes
- Fast (milliseconds)
- Many tests (hundreds)
- Run frequently (every save)
Integration Tests: Test components together
- Slower (seconds/minutes)
- Fewer tests (dozens)
- Run on commits/deployments
Homeostasis Goal:
desired_state:
all_integration_tests_passing: true
all_requirements_have_integration_tests: true
"Excellence or nothing" 🔥
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.