cs-codex-dist-tests/Tests/CodexContinuousTests
benbierens a69bea47af
Debugging downloader in cluster
2023-10-03 15:18:58 +02:00
..
Tests Debugging downloader in cluster 2023-10-03 15:18:58 +02:00
reports Moves projects into folders 2023-09-20 10:51:47 +02:00
CodexContinuousTests.csproj Restores continuous test runner 2023-09-20 13:33:58 +02:00
Configuration.cs Updates READMEs 2023-09-29 10:19:59 +02:00
ContinuousTest.cs Debugging downloader in cluster 2023-10-03 15:18:58 +02:00
ContinuousTestRunner.cs Fixes incorrect log message when test run gets cancelled. 2023-10-02 09:24:01 +02:00
ElasticSearchLogDownloader.cs Debugging downloader in cluster 2023-10-03 15:18:58 +02:00
EntryPointFactory.cs Set up loading of plugins. 2023-09-20 13:56:01 +02:00
NodeRunner.cs Updates READMEs 2023-09-29 10:19:59 +02:00
Program.cs Restores continuous test runner. 2023-09-21 10:33:09 +02:00
README.md Updates READMEs 2023-09-29 10:19:59 +02:00
SingleTestRun.cs Debugging downloader in cluster 2023-10-03 15:18:58 +02:00
StartupChecker.cs Adds codex environment variables to startup log of continuous tests. 2023-09-27 09:09:42 +02:00
TaskFactory.cs Moves projects into folders 2023-09-20 10:51:47 +02:00
TestFactory.cs Moves projects into folders 2023-09-20 10:51:47 +02:00
TestHandle.cs Moves projects into folders 2023-09-20 10:51:47 +02:00
TestLoop.cs Prevents multiple continuous tests from running interleaved. 2023-10-02 11:18:27 +02:00
TestMomentAttribute.cs Moves projects into folders 2023-09-20 10:51:47 +02:00
run.sh Updates READMEs 2023-09-29 10:19:59 +02:00

README.md

Codex Continuous Tests

This CLI tool runs tests in an endless loop, using a network of Codex nodes in a kubernetes cluster. Run dotnet run -- --help to view all CLI options.

Choosing tests

By default, all tests in the CodexContinuousTests/Tests folder will be used. If you want to limit your test run to a subset of tests, please delete or disable the other test code files. TODO: We'd like a CLI option for selecting tests. Similar to dotnet test --filter, maybe?

Where do I get a codex-deployment.json

See THIS

Output

The test runner will produce a folder with all the test logs. They are sorted by timestamp and reflect the names of the tests. When a test fails, the log file for that specific test will be postfixed with _FAILED.

Pass and fail conditions

While individual tests can pass or fail for a number of times and/or over a length of time as configurable with the CLI argument, the test run entirely is not considered passed or failed until either of the following conditions are met:

  1. Failed: The number of test failures has reached the specifid number, or the test runner was manually cancelled.
  2. Passed: The failed condition was not reached within the time specified by the target-duration option.

Transient nodes

The continuous tests runner is designed to use a network of Codex nodes deployed in a kubernetes cluster. The runner will not influence or manage the lifecycle of the nodes in this deployment. However, some test cases require transient nodes. A transient node is a node started and managed by the test runner on behalf of a specific test. The runner facilitates the tests to start and stop transient nodes, as well as bootstrap those nodes against (permanent) nodes from the deployed network. The test runner makes sure that the transient nodes use the same docker image as the permanent nodes, to avoid version conflicts. However, the image used for transient nodes can be overwritten by setting the CODEXDOCKERIMAGE environment variable. The use of a local Codex repository for building override images is not supported for transient nodes.