CMS (contestms) のユニットテストと機能テスト

CMS (contestms) は国際情報オリンピックと各国の情報オリンピックを中心に利用されているオープンソースのオンラインジャッジシステムである。

CMSのバックエンドに手を入れる場合には、ユニットテストと機能テストを手元で実行できるようにしたほうがよい。

前提: CMSを動作させるための設定はできている。

データベースの設定

ユニットテストおよび機能テストでは本番用(?)とは異なるデータベースを採用する。データベース名の計算はザルで、以下の行で処理している。

cms.config.database += "fortesting"

例えば、CMSの設定マニュアルでは postgresql+psycopg2://cmsuser:your_password_here@localhost/cmsdb という名前のデータベースを設定しているが、これに従うなら、同じようにして cmsdbfortesting という名前のDBを作成しておく。

テストの実行

cmsRunTests -v

テストに失敗した場合 -r をつければ失敗したテストを対象に再度実行できる。