buildkite / test-engine-client

Buildkite Test Engine Client (bktec) is an open source tool to orchestrate your test suites. It uses your Buildkite Test Engine suite data to intelligently partition and parallelise your tests.
MIT License
9 stars 1 forks source link

Update Split By Example implementation #176

Closed nprizal closed 2 months ago

nprizal commented 2 months ago

Description

Previously, Split By Example is implemented against files that take slower than 3 minutes. To extend the functionality of Split By Example for better slow file detection, as well as to support test quarantining in the future, we want to have the server determine which files need to be split by example.

Before

  1. Client sends request POST /test_files endpoint to get duration for all files
  2. Client finds files slower than 3 minutes
  3. Client executes dry run for those files
  4. Client sends examples within those files along with other files to create test plan

After

  1. Client sends request POST /test_plan/filter_tests endpoint to filter files that will be Split by Example
  2. Client executes dry run for those files
  3. Client sends examples within those files along with other files to create test plan

Testing

Do integration test with BUILDKITE_SPLITTER_SPLIT_BY_EXAMPLE=true against a test suite that has files longer than 3 minutes to run. The files that takes longer than 3 minutes should be split by example.