Skip to content

feat: alttester automation test support#7645

Open
mihakrajnc wants to merge 14 commits intodevfrom
feat/alttester
Open

feat: alttester automation test support#7645
mihakrajnc wants to merge 14 commits intodevfrom
feat/alttester

Conversation

@mihakrajnc
Copy link
Contributor

@mihakrajnc mihakrajnc commented Mar 18, 2026

Pull Request Description

Adds AltTester SDK integration for UI automation testing, along with a standalone .NET test project, CI instrumented build support, and a Claude AI sub-agent + required documentation.

What does this PR change?

AltTester SDK Integration

  • Adds the AltTester Unity package and prefab to the project
  • Non-release builds (PR and dev) include AltTester instrumentation, activated at runtime via the --alttester launch argument
  • Adds the alttester flag to AppArgsFlags so the instrumentation is opt-in

Standalone Test Project (ExplorerAutomationTests/)

  • .NET 8.0 project using AltTester-Driver 2.3.0, NUnit 3, and Allure reporting
  • Page Object Model (POM) architecture:
    • BaseView — abstract base with click, wait, find, text helpers and Allure step tracking
    • BaseTest — driver lifecycle, view initialization, EnsureInWorld() flow (splash → auth → loading)
    • BaseSection — abstract base for panel sections with visibility/wait helpers
    • Screen views: AuthenticationMainScreenView, SplashView, LoadingScreenView, MainMenuView, ExplorePanelView
    • Explore Panel sections: EventsSection, PlacesSection, CommunitiesSection, NavmapSection, BackpackSection, GallerySection, SettingsSection
    • Reporter — timestamped logging and Allure screenshot/attachment helpers
  • 15 tests covering sidebar navigation, keyboard shortcuts, and tab switching for the Explore Panel

Documentation

  • Adds docs/automation-testing.md with architecture overview, manual and MetaForge test instructions, and AltTester AI Extension setup for Claude Code
  • Adds README.md and CODING_STANDARDS.md to the test project
  • Adds automation-tester Claude Code sub-agent (.claude/agents/) for AI-assisted test authoring

Test Instructions

Prerequisites

  • AltTester Desktop installed (Pro license required)
  • .NET 8.0 SDK installed
  • An instrumented Explorer build from this PR, or the Unity Editor
  • MetaForge installed and updated to latest dev release (metaforge update --dev)

Test Steps — Manual

  1. Download the instrumented build from the PR artifacts
  2. Launch it with --alttester
  3. Open AltTester Desktop and confirm Explorer connects
  4. Run the tests:
    cd ExplorerAutomationTests
    dotnet test
  5. All 15 tests should pass (explore panel sidebar, shortcuts, tab switching)

Test Steps — MetaForge

  1. metaforge explorer test 7645
  2. All tests should pass and an Allure report should open in the browser

Additional Testing Notes

  • Verify that the --alttester flag is required — without it, the AltTester prefab should not load
  • Verify that release builds do NOT include AltTester instrumentation
  • The AltTester connection overlay should be visible in the instrumented build

Quality Checklist

  • Changes have been tested locally
  • Documentation has been updated
  • Performance impact has been considered (AltTester is opt-in and excluded from release builds)

Code Review Reference

Please review our Code Review Standards before submitting.

@github-actions
Copy link
Contributor

github-actions bot commented Mar 18, 2026

@pravusjif pravusjif self-requested a review March 23, 2026 14:39
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All the changes in this prefab are the AltId Monobehaviour addition on inner UI GameObjects right?

Comment on lines +22 to +23
!*.csproj
!*.sln No newline at end of file
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are these 2 files needed?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants