What's wrong with tarantool tests? - AnaNek/tarantool GitHub Wiki

Diff-based approach (pro et contra)

  • contra: write easy, maintainance is hard
  • contra: explicit test oracle, test is useless without verified .result file
  • contra: fragile because depend on formatting
  • contra: one cannot create a test when tested functionality is not ready, because output is a mandatory part of a test
  • contra: during review you should inspect both artifacts: source code of a test and it's output. It's double efforts for reviewers.
  • pro: you can easily reproduce a bug with copy-paste test source code in interactive mode

See also: MySQL, MariaDB, PostgreSQL, PostgreSQL

test-run.py and test harness limitations

  • Can't use remote instances
  • No support of additional test statuses like XFail, XPass. Instead we comment blocked test out and uncomment it after a fix.
  • Low code reuse among different tests. Only basic and often used operations are in a test_run.lua and it's number is small.
  • Pure tests isolation, test should be hermetic. Many tests doesn't restore environment state at the end of testing and new test starts in a "dirty" environment.
  • Pure parametrization of tests. One cannot easily rerun async replication tests for synchronous replication.
  • test-run.py lack features existed in a popular testing framework for years: just take a look to a pytest for example.
  • Pure testcase management: cannot to run single testcase in a file
  • One cannot use common fixtures in a number of tests, instead he should implement new functionality in a test-run.py