2

Redmine用のプラグインを作成しましたが、今ではそのためのテストケースの作成が困難です。私はrspecのようなフレームワークを使用していません。これは単にレールによって提供されるデフォルトのアサートです。Redmineでのテスト

私はrubyインタープリタを使ってファイルを実行してテストを始めました。 これは照明器具をロードしなかったので、私は代替手段を見つけました:$ {redmine_root}/vendor/plugins/my_plugin/test/fixturesから$ {redmine_root}/test/fixturesにフィクスチャファイルをコピーし、rake db:fixturesを実行しました:ロードして、ロードします。

私がテストしているコントローラーには、init.rbで設定されたアクセス許可があり、一部の操作では承認が必要です。

私は特権ユーザー(Admin)としてセッションを開きますが、私はコントローラでアクションを実行する権限がありませんが、どういうわけか、テストの開始時にパーミッションをロードしません。

roles.ymlに手動でアクセス権を追加して、ユーザーに適切な役割が割り当てられていることを確認しました。 プラグインはうまく動作しますが、テスト時にのみこれらの問題が発生しています。私がコントローラのbefore_filter:authorizeでコメントした場合、テストは合格になります。

何か不足していますか? init.rbからのアクセス権が別の場所に格納されているか、テストフェーズ中に別の方法でロードされていますか?

+1

テストはどのように見えますか?許可は何をしますか?注意深いコードサンプルが役に立つでしょう。 –

答えて

5

Redmineが提供するレーキタスクを使用して、テストスイートを実行してみてください。彼らはすべてを適切に設定する必要があります。 rake -T search-patternを使用して検索することができます。 rake -T test:pluginsは次のものをリストアップします:

rake test:plugins      # Run tests for pluginsenvironment/Run the plugin tests in vendor/plugins/*/**/test (or specify with PLUGIN=name) 
rake test:plugins:all     # Run the plugin tests in vendor/plugins/**/test (or specify with PLUGIN=name) 
rake test:plugins:functionals   # Run tests for functionalssetup_plugin_fixtures 
rake test:plugins:integration   # Run tests for integrationsetup_plugin_fixtures 
rake test:plugins:setup_plugin_fixtures # Mirrors plugin fixtures into a single location to help plugin tests 
rake test:plugins:units     # Run tests for unitssetup_plugin_fixtures 
+0

ありがとう!私はこれらのコマンドについて知りませんでした。フィクスチャが正しくロードされました。 – user852689