Skip to content

Multi-language support — C++ and C# test execution #7

@ThomasMalletCodra

Description

@ThomasMalletCodra

Description

Extend ModuleTester beyond Python-only test execution to support running tests written in other languages — primarily C++ and C# (or web). This would allow teams working on multi-language projects to manage all their test plans in a single tool.

Current behavior

  • Only Python scripts can be executed as test items.
  • Test discovery (guitest) only works with Python files.
  • Non-Python tests must be wrapped in Python launcher scripts.

Expected behavior

  • Test items can reference executables (.exe, compiled test binaries) directly.
  • Support for common C++ test frameworks: Google Test, Catch2 (parse their output).
  • Support for C# test runners: dotnet test with result parsing.
  • Language-agnostic "command" test type for arbitrary executables.
  • Test discovery can be extended via plugins or configuration.

Implementation ideas

  1. Add a generic CommandTestItem type that runs any executable and captures exit code + output.
  2. Add output parsers for Google Test XML (--gtest_output=xml) and dotnet test --logger trx.
  3. Allow moduletester.ini to define custom test runners:
    [test_runners]
    cpp = gtest
    csharp = dotnet_test
  4. Plugin architecture: ITestRunner interface with discover(), execute(), parse_result().

Acceptance criteria

  • Arbitrary executables can be added as test items
  • Exit code is used as pass/fail indicator for generic commands
  • At least one C++ framework output parser (Google Test or Catch2)
  • At least one C# framework output parser (dotnet test)
  • Custom test runners can be configured per project

References

Ideas like Conan2 package manager for C++ project written in Python : https://github.com/conan-io/conan

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions