Skip to content

Create Shared Test Infrastructure #162

@adriandarian

Description

@adriandarian

Create centralized test utilities, fixtures, and helpers shared across repositories.

Details

Common testing infrastructure to reduce duplication and improve test quality org-wide.

Infrastructure Location

shared-testing/ directory with published packages

Components

Test Utilities

  • Mock factories
  • Test data generators
  • Assertion helpers
  • Async test helpers
  • Snapshot testing utilities
  • Performance testing tools

Fixtures

  • Common test data sets
  • Mock API responses
  • Sample files (JSON, XML, CSV)
  • Database seeds
  • Configuration fixtures

Test Helpers

  • Setup/teardown utilities
  • Test environment management
  • Temporary file/directory helpers
  • Network mocking
  • Time manipulation
  • Random data generation

Integration Test Tools

  • API testing utilities
  • Database test helpers
  • Container orchestration
  • Service mocking
  • E2E test framework

Shared Test Packages

For JavaScript/TypeScript

  • @vscplus/test-utils
  • @vscplus/test-fixtures
  • @vscplus/mock-server

For Python

  • vscplus-testing
  • vscplus-fixtures
  • vscplus-mocks

For Go

  • github.com/vscplus/testing
  • github.com/vscplus/fixtures

Example Utilities

// @vscplus/test-utils
import { createMockContext, expectAsync, withTimeout } from '@vscplus/test-utils';

test('async operation', async () => {
  const ctx = createMockContext({ user: 'test' });
  await expectAsync(ctx.operation()).toResolve();
});
# vscplus-testing
from vscplus.testing import TempDirectory, MockTime

with TempDirectory() as tmp:
    with MockTime('2025-01-01'):
        # test code here

Documentation

  • Usage guides for each utility
  • Best practices for testing
  • Migration guide from custom solutions
  • Recipe book for common scenarios
  • Performance testing guide
  • Integration testing guide

Distribution

  • Published to npm, PyPI, crates.io, etc.
  • Documented in central testing docs
  • Version synchronized across languages
  • Changelog maintained
  • Breaking change policy

Acceptance Criteria

  • Core utilities implemented for all major languages
  • Fixtures comprehensive and realistic
  • Packages published to registries
  • Documentation complete
  • Adopted by 5+ repositories
  • Test coverage >90%
  • Performance acceptable
  • API stable
  • Examples provided
  • Migration guide ready

Metadata

Metadata

Assignees

Type

Projects

Status

No status

Relationships

None yet

Development

No branches or pull requests

Issue actions