Framework supporting the following:
-
Running protocols against emulation
-
Capturing called G-Codes of emulated protocols
-
Parsing captured G-Codes into human-readable text or JSON format
-
Diffing human-readable text or JSON format
-
CLI access to all the above features
- Navigate into
g-code-testing
directory - Run
make setup
To run g-code-testing
framework acceptance tests run
make test
The G-Code Program tests run various protocols or HTTP requests, capture the sent G-Codes, and compare them against
comparison files in g_code_test_data/comparison_files
All G-Code program test cases that take under a minute are grouped together in one execution test-g-code-fast
To run these run
make test-g-code-fast
All G-Code program tests that take over a minute are pulled out into their own Makefile target so they can be called in parallel inside a Github Action.
To run these run the specific make target related to the test.
For instance, to run the swift-turbo
test run
make test-g-code-swift-turbo
You can run the various G-Code Programs without pytest, directly in your terminal with the following commands:
make get-g-code-configurations
prints a list of all available g-code programs to run. Use these printed names
to specify which program to run.
Command:
make get-g-code-configurations
Sample Output:
Note: All protocol/
configurations have a version number that represents what APIversion
or schema_version
the protocol will run against.
Runnable Configurations:
http/magdeck_calibrate
http/magdeck_deactivate
http/magdeck_engage
http/robot_home_left_pipette
http/robot_home_right_pipette
http/robot_home_robot
http/robot_move_left_mount
http/robot_move_left_pipette
http/robot_move_right_mount
http/robot_move_right_pipette
http/tempdeck_deactivate
http/tempdeck_start_set_temperature
http/thermocycler_close
http/thermocycler_cycle_temperatures
http/thermocycler_deactivate
http/thermocycler_deactivate_block
http/thermocycler_deactivate_lid
http/thermocycler_open
http/thermocycler_set_lid_temperature
http/thermocycler_set_temperature
protocols/2_modules/2.12
protocols/2_modules/2.13
protocols/2_single_channel/2.12
protocols/2_single_channel/2.13
protocols/basic_smoothie/2.12
protocols/basic_smoothie/2.13
protocols/beckman_coulter_rna_advance_viral_rna_isolation/2.12
protocols/beckman_coulter_rna_advance_viral_rna_isolation/2.13
protocols/cherrypicking/2.12
protocols/cherrypicking/2.13
protocols/customizable_serial_dilution_ot2/2.12
protocols/customizable_serial_dilution_ot2/2.13
protocols/illumina_nextera_xt_library_prep_part1/2.12
protocols/illumina_nextera_xt_library_prep_part1/2.13
protocols/json_smoke/6
protocols/no_mods/6
protocols/omega_biotek_magbind_totalpure_ngs/2.12
protocols/omega_biotek_magbind_totalpure_ngs/2.13
protocols/opentrons_logo/2.12
protocols/opentrons_logo/2.13
protocols/pcr_prep_part_1/2.12
protocols/pcr_prep_part_1/2.13
protocols/pcr_prep_part_2/2.12
protocols/pcr_prep_part_2/2.13
protocols/pcr_prep_part_2/2.14
protocols/set_max_speed/2.12
protocol