== Testing Yubico Authenticator Verifying the quality of Yubico Authenticator is made through multiple levels of tests, loosely defined in the following groups. * Automatic tests in CI pipeline * Unit tests * Automatic tests requiring a Yubikey * Manual tests The automated tests requiring a key and the manual tests are run by the developer team as part of regression tests for releasing new versions of the app. The manual tests are problematic to automate as they depend on other technology which are a bit to expensive to automate (camera, webauthn) in the flutter test framework. To run the tests you need to specify the serial number of a Yubikey which the tests are able to run on (OBS this key will be reset by running the tests, so don't use one of your personal keys). This either be defined as an anvironment variable on execution, or in a CSV-file with serial numbers: $ /yubioath-flutter/integration_test/test_res/resources/approved_serial_numbers.csv This file is part of .gitignore, and should never be committed. If you do not wish to add serial numbers to a file like above, you can also initiate the test runs by expressing a dart-define: $ flutter --dart-define=YA_TEST_APPROVED_KEY_SN=SN1,SN2,...,SNn test integration_test === Desktop Running the tests for the CI environment: $ flutter test integration_test/keyless_test.dart Running all the tests for desktop (requires a Yubikey): $ ./testrunner.sh Running all the tests for desktop (requires a Yubikey): $ flutter test The testrunner interface is work in progress, but it deals with a problem of the flutter integration_test framework, i.e. that it fails to initiate multiple UI-tests. Manual test scripts will be moved here so all quality related information is in the same place. === Android Testing of GUI of the Android client is also a work in progress as tests work differently on the mobile platform.