Build Pipeline
Testing

Testing

The testing feature helps you maintain code quality by running automated tests before each build. This ensures that every build you create has a record of test results, making it easier to track regressions and verify functionality.

Running Tests

Enable the "Run Tests" option to execute your test suite during the build process.

Enable Testing

When enabled, Hyperstone will:

  1. Run all tests in your project using Vitest
  2. Generate a comprehensive test report
  3. Store the results with your build record
  4. Make the report accessible from the build history

Test Framework

Hyperstone uses Vitest as the testing framework. Tests are executed in the game environment, allowing you to verify game logic, systems, and integrations before deployment.

Your tests should be written using Vitest syntax and placed in your project's test directory. The test runner will automatically discover and execute all test files during the build process.

Viewing Test Reports

After a build completes with testing enabled, you can access the test report from the Build History panel.

Test Report Button

Click the "Test Report" button next to any build to view its test results.

Test Report Details

The test report provides a detailed breakdown of all test executions, including passed tests, failures, and any errors encountered.

Test Report

The report includes:

  • Total number of tests run
  • Pass/fail status for each test
  • Execution time
  • Error messages and stack traces for failures
  • Coverage information (if configured)

Writing Tests

Tests in your Godot project should follow Vitest conventions. Here's a basic example structure:

# Example test structure (conceptual)
# Your actual tests will be in TypeScript/JavaScript using Vitest
 
describe('Player Movement', () => {
  it('should move player when input is received', () => {
    // Test implementation
  });
  
  it('should stop player when no input', () => {
    // Test implementation
  });
});

The test runner integrates with your game code, allowing you to test game systems, physics, UI interactions, and more.