GithubHelp home page GithubHelp logo

redmine_redcaser's Introduction

Redmine Redcaser

Build Status Coverage Status

A fork of Redcase.


Table of Contents

Description

Redcaser is a Redmine plugin whose sole purpose is to organize testcases. When this plugin is correctly configured to your Redmine instance and project, he should be displayed as tab next to the others.

Redcaser has two parts:

  • the Test cases tab, that is about creating the Suites in which the testcase will be organized to cover your projects’ features,
  • and the Test Execution & Results in which, as the name suggested, we create the Executions Suites and then we ran the test cases.

A test case, in this plugin, is a new type of tracker -> Test Case, that has 3 new fields of type textarea : Preconditions, Steps, Expected Results. This approach is minimalistic, and each field should be filled with relevant content. A test case needs to belong to a Suite, so the first thing you should add, is a at least one Suite, in the Test Cases tab.

  1. Test cases tab
  • in this page you are able to to create the Suites that in whish you will organize / structure your testcases. A suite can have an unlimited number of suites as children, so you can recreate your projects feature as you want.
  • Testcases can be moved between suites by drag n dropping, using the green double arrow.
  1. Test Execution & Results tab The following options are available when creating an execution suite:
  • choosing a version, from all the available (not closed) ones.
  • choosing an environment, or creating a new one; this could be anything from environments, browsers, operating systems, mobile, tablet, etc. you decide.
  • choosing a query, from the public ones associated to the project, or from custom queries, then selecting the desired testcases from that query.

After a Suite Execution is created, when it's selected in the dropdown, all the included testcases will be displayed in the left side of the screen. When a testcase is clicked, it will be opened in the right side of the screen. The status of a testcase can be modified (to Failed, Passed, Blocked) either from the left side, or from the right side, and you can also add a comment

Test

First create the test database:

bundle exec rake db:create db:migrate RAILS_ENV=test

Run tests for the current plugin:

bundle exec rake redmine:plugins:test NAME=redmine_redcaser

Guard

Make sure to have the test database set up:

bundle exec rake db:create db:migrate RAILS_ENV=test

Start guard from the plugin directory:

cd plusing/redmine_redcaser

guard

NOTE: If you intrerupt guard and the database is no longer present just execute the command to create it again.

redmine_redcaser's People

Contributors

anikievev avatar comandeo avatar csbubbles avatar dr-consit avatar marius-balteanu avatar sdwolfz avatar zcatalinz avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

redmine_redcaser's Issues

Select query for test Execution occur 500 error

@marius-balteanu , please help to check it.

when I add a query to test Execution on the execution & result TAB, it occurred 500 error. Thanks.

my environment is

Environment:
  Redmine version                3.3.4.stable.16963
  Ruby version                   2.2.4-p230 (2015-12-16) [x86_64-linux]
  Rails version                  4.2.7.1
  Environment                    production
  Database adapter               Mysql2
Started GET "/projects/demo/redcaser/querytestcases/94?execution_suite_id=" for 10.1.200.167 at 2017-09-16 17:43:54 +0800
Processing by Redcaser::QuerytestcasesController#show as */*
  Parameters: {"execution_suite_id"=>"", "project_id"=>"demo", "id"=>"94"}
  Current user: hui.wang (id=8)
Completed 500 Internal Server Error in 15ms (ActiveRecord: 3.5ms)
  Rendered /usr/local/rvm/gems/ruby-2.2.4@newgemset/gems/exception_notification-4.2.1/lib/exception_notifier/views/exception_notifier/_request.text.erb (0.7ms)
  Rendered /usr/local/rvm/gems/ruby-2.2.4@newgemset/gems/exception_notification-4.2.1/lib/exception_notifier/views/exception_notifier/_title.text.erb (0.6ms)
  Rendered /usr/local/rvm/gems/ruby-2.2.4@newgemset/gems/exception_notification-4.2.1/lib/exception_notifier/views/exception_notifier/_session.text.erb (1.3ms)
  Rendered /usr/local/rvm/gems/ruby-2.2.4@newgemset/gems/exception_notification-4.2.1/lib/exception_notifier/views/exception_notifier/_title.text.erb (0.4ms)
  Rendered /usr/local/rvm/gems/ruby-2.2.4@newgemset/gems/exception_notification-4.2.1/lib/exception_notifier/views/exception_notifier/_environment.text.erb (2.5ms)
  Rendered /usr/local/rvm/gems/ruby-2.2.4@newgemset/gems/exception_notification-4.2.1/lib/exception_notifier/views/exception_notifier/_title.text.erb (0.4ms)
  Rendered /usr/local/rvm/gems/ruby-2.2.4@newgemset/gems/exception_notification-4.2.1/lib/exception_notifier/views/exception_notifier/_backtrace.text.erb (0.4ms)
  Rendered /usr/local/rvm/gems/ruby-2.2.4@newgemset/gems/exception_notification-4.2.1/lib/exception_notifier/views/exception_notifier/_title.text.erb (0.4ms)
  Rendered /usr/local/rvm/gems/ruby-2.2.4@newgemset/gems/exception_notification-4.2.1/lib/exception_notifier/views/exception_notifier/exception_notification.text.erb (14.7ms)

NoMethodError (undefined method `count' for nil:NilClass):
  plugins/redmine_issues_tree_view/lib/issue_query_patch.rb:15:in `issues'
  plugins/redmine_redcaser/app/controllers/redcaser/querytestcases_controller.rb:7:in `show'
  lib/redmine/sudo_mode.rb:63:in `sudo_mode'

open roadmap tab occured an 500 error

@marius-balteanu , thanks in advanced.

I installed the plugin and used in my environment

my environment is

Environment:
  Redmine version                3.3.0.stable.15842
  Ruby version                   2.2.4-p230 (2015-12-16) [x86_64-linux]
  Rails version                  4.2.7.1
  Environment                    production
  Database adapter               Mysql2

I used advanced_roadmap plugins
https://redmine.ociotec.com/projects/advanced-roadmap

errorlog

Started GET "/projects/demo/roadmap" for 192.168.60.238 at 2016-09-28 22:04:13 +0800
Processing by VersionsController#index as HTML
  Parameters: {"project_id"=>"demo"}
  Current user: hui.wang (id=8)
  Rendered plugins/advanced_roadmap_v2/app/views/versions/_total.html.erb (14.4ms)
  Rendered versions/_overview.html.erb (5.7ms)
  Rendered plugins/advanced_roadmap_v2/app/views/versions/_info.html.erb (144.9ms)
  Rendered plugins/advanced_roadmap_v2/app/views/versions/index.html.erb within layouts/base (209.1ms)
Completed 500 Internal Server Error in 381ms (ActiveRecord: 34.9ms)
  Rendered /usr/local/rvm/gems/ruby-2.2.4@newgemset/gems/exception_notification-4.2.1/lib/exception_notifier/views/exception_notifier/_request.text.erb (0.3ms)
  Rendered /usr/local/rvm/gems/ruby-2.2.4@newgemset/gems/exception_notification-4.2.1/lib/exception_notifier/views/exception_notifier/_title.text.erb (0.3ms)
  Rendered /usr/local/rvm/gems/ruby-2.2.4@newgemset/gems/exception_notification-4.2.1/lib/exception_notifier/views/exception_notifier/_session.text.erb (1.3ms)
  Rendered /usr/local/rvm/gems/ruby-2.2.4@newgemset/gems/exception_notification-4.2.1/lib/exception_notifier/views/exception_notifier/_title.text.erb (0.1ms)
  Rendered /usr/local/rvm/gems/ruby-2.2.4@newgemset/gems/exception_notification-4.2.1/lib/exception_notifier/views/exception_notifier/_environment.text.erb (2.6ms)
  Rendered /usr/local/rvm/gems/ruby-2.2.4@newgemset/gems/exception_notification-4.2.1/lib/exception_notifier/views/exception_notifier/_title.text.erb (0.1ms)
  Rendered /usr/local/rvm/gems/ruby-2.2.4@newgemset/gems/exception_notification-4.2.1/lib/exception_notifier/views/exception_notifier/_backtrace.text.erb (0.1ms)
  Rendered /usr/local/rvm/gems/ruby-2.2.4@newgemset/gems/exception_notification-4.2.1/lib/exception_notifier/views/exception_notifier/_title.text.erb (0.1ms)
  Rendered /usr/local/rvm/gems/ruby-2.2.4@newgemset/gems/exception_notification-4.2.1/lib/exception_notifier/views/exception_notifier/exception_notification.text.erb (13.9ms)

ActionView::Template::Error (Mysql2::Error: Unknown column 'execution_journals.version_id' in 'where clause': SELECT `execution_journals`.* FROM `execution_journals` WHERE `execution_journa
ls`.`version_id` = 1):     8: <% @versions.each do |version| %>
     9:     <h3 class="version"><%= tag 'a', :name => version.name %><%= link_to_version version %></h3>
    10:     <%= render :partial => 'versions/info', :locals => {:version => version, :issues => @issues_by_version[version], :totals => @totals} %>
    11:     <%= call_hook :view_projects_roadmap_version_bottom, :version => version %>
    12: <% end %>
    13: </div>
    14: <% end %>
  plugins/redcase/lib/redcase_override.rb:38:in `view_projects_roadmap_version_bottom'
  lib/redmine/hook.rb:61:in `block (2 levels) in call_hook'
  lib/redmine/hook.rb:61:in `each'
  lib/redmine/hook.rb:61:in `block in call_hook'
  lib/redmine/hook.rb:58:in `tap'
  lib/redmine/hook.rb:58:in `call_hook'
  lib/redmine/hook.rb:96:in `call_hook'
  plugins/advanced_roadmap_v2/app/views/versions/index.html.erb:11:in `block in _plugins_advanced_roadmap_v__app_views_versions_index_html_erb___2806338928016997124_32412020'
  plugins/advanced_roadmap_v2/app/views/versions/index.html.erb:8:in `each'
  plugins/advanced_roadmap_v2/app/views/versions/index.html.erb:8:in `_plugins_advanced_roadmap_v__app_views_versions_index_html_erb___2806338928016997124_32412020'
  lib/redmine/sudo_mode.rb:63:in `sudo_mode'

ActiveRecord::RecordInvalid (Validation failed: Related issue cannot be blank):

ActiveRecord::RecordInvalid (Validation failed: Related issue cannot be blank):
  plugins/redmine_redcaser/lib/redmine_redcaser/hooks/override_hook.rb:52:in `controller_issues_new_after_save'
  lib/redmine/hook.rb:61:in `block (2 levels) in call_hook'
  lib/redmine/hook.rb:61:in `each'
  lib/redmine/hook.rb:61:in `block in call_hook'
  lib/redmine/hook.rb:58:in `tap'
  lib/redmine/hook.rb:58:in `call_hook'
  lib/redmine/hook.rb:91:in `call_hook'
  app/controllers/issues_controller.rb:141:in `create'
  lib/redmine/sudo_mode.rb:63:in `sudo_mode'

n the project roadmap to be displayed the total number of test cases from the existing execution suites for a certain version

Currently for a certain version it's displayed:
Total test cases: 0 [Passed=0] [Failed=0] [Blocked=0]

Expected:

  • Given that you have multiple execution suites for a certain version.
    Example:
    "Exec suite 1" with a total of 5 test cases (Passed = 4; Failed = 0; Blocked = 0, Not run = 1)
    "Exec suite 2" with a total of 5 test cases (Passed = 1; Failed = 1; Blocked = 1, Not run = 2)
  • When you go to the project Roadmap for a certain version the total number of test cases will be displayed
    Example:
    Total test cases: 10 [Passed=5] [Failed=1] [Blocked=1]

https://github.com/marius-balteanu/redmine_redcaser/blob/master/lib/redmine_redcaser/hooks/override_hook.rb#L137

Salvare jurnale teste case-uri per execution suite

Tinand cont ca un test case poate fi asociat la mai multe execution suite-uri, ar trebui sa salvam istoricul acestora intr-o tabela separata (nu in cea default din Redmine) astfel incat sa afisam comentariile si istoricul executiilor per execution suite.

Acum toate aceste informatii sunt salvate la comun pe test case-ul respectiv.

Creare endpoint care sa returneze un json cu detaliile legate de un test case si executia din care face parte

In execution suite, la click pe list-item-name (eventul handleListItemClick) ar trebui sa incarcam de pe server detaliile despre test case-ul respectiv. Detaliile le vom folosi pentru a a afisa sectiunea de "test case preview".

In acest moment, sectiunea "test case preview" este creata folosind informatiile returnate de "redcaser/executionsuites/13", dar pentru a nu avea probleme de performata pe viitor, ne dorim sa limitam detaliile returnate de ruta respectiva doar la cele necesare pentru a afisa tabelul execution-table.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.