cs-codex-dist-tests/Tests/CodexContinuousTests
benbierens 0f9e01e393
Adds git revision information to logs for testing framework status
2023-11-13 11:56:02 +01:00
..
Tests Adds test for routing table checks. 2023-11-12 10:36:48 +01:00
reports Adds test report for September 2023-10-05 08:31:44 +02:00
CodexContinuousTests.csproj Restores continuous test runner 2023-09-20 13:33:58 +02:00
Configuration.cs rigged for twoclient test with full container log download 2023-10-08 19:11:31 +02:00
ContinuousTest.cs Cleanup 2023-10-04 09:36:59 +02:00
ContinuousTestRunner.cs Adds git revision information to logs for testing framework status 2023-11-13 11:56:02 +01:00
ElasticSearchLogDownloader.cs Cleanup of kubernetesWorkflow assembly. 2023-11-12 10:07:23 +01:00
EntryPointFactory.cs Bumps k8s operation timeout for continuous test runner. 2023-10-04 09:26:11 +02:00
NodeRunner.cs Cleanup of kubernetesWorkflow assembly. 2023-11-12 10:07:23 +01: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 Adds git revision information to logs for testing framework status 2023-11-13 11:56:02 +01:00
StartupChecker.cs Enable debug logging from single environment variable or static field. 2023-11-08 09:24:39 +01: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 Adds status log entry for each test run in continuous tests. 2023-11-09 11:35:45 +01:00
TestMomentAttribute.cs Moves projects into folders 2023-09-20 10:51:47 +02:00
deploy-and-run.sh Locks up deploy-and-run script after tests are started. 2023-11-01 10:27:31 +01:00
run.sh Automate Continuous Tests using GitHub Actions (#69) 2023-11-06 15:09:51 +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.