Sync
Rspectest results with yourtestrailsuite. Discover an example with Capybara in this gem source.
- Update test results in the existing test run
- Create dynamic test run and update test results in it
- Update multi-testrail cases from a single automation scenario
- Delete/clean all the existing test runs in a project's suite before test run
- Skip specific test-runs from deletion, when
clean_testrunis settrue - Static status comments on all the scenarios
- Support for RSpec
shared examples - Disable
testrail-rspecexecution on-demand - Support for environment variables to pass testrail config values
Add this line to your application's Gemfile:
gem 'testrail-rspec'And then execute:
$ bundleOr install it yourself as:
$ gem install testrail-rspecImport the library in your spec_helper.rb file
require 'testrail-rspec'
Prefix TestRail Case ID on start of your rspec scenario; say, C845
describe 'Verify Google Home Page' do
scenario 'C845 verify the Google home page' do
expect(page).to have_content('Google')
end
scenario 'C847 verify the Google home page to fail' do
expect(page).to have_content('Goo gle')
end
scenario 'C853 verify the Google home page to skip' do
skip "skipping this test"
end
endPrefix multiple testrail case id(s) on start of your rspec scenario; say, C845 C845 your scenario description
describe 'Verify Google Home Page' do
scenario 'C847 C846 C845 verify the Google home page' do
expect(page).to have_content('Google')
end
scenario 'C848 C849 verify the Google home page to fail' do
expect(page).to have_content('Goo gle')
end
scenario 'verify the Google home page to fail' do
expect(page).to have_content('Goo gle')
end
endContext blocks with testrail case id(s) to make use of Shared Examples
shared_examples 'log in' do
it 'logs in'
end
shared_examples 'log out' do
it 'logs out'
end
describe 'User login' do
context 'Regular user' do
let(:user) { create(:regular_user) }
context 'C845 single case' do
include_examples 'log in'
end
context 'C847' do
include_examples 'log out'
end
end
context 'Admin user' do
let(:user) { create(:admin_user) }
context 'C850 C853 multi cases' do
include_examples 'log in'
end
context 'nothing to update in test-rail' do
include_examples 'log out'
end
end
end-
Create a config file,
testrail_config.ymlin the project's parent folder -
Enter the testrail details based on demand
-
To execute tests against the existing
Test Run,testrail: url: https://your_url.testrail.io/ user: your@email.com password: ****** run_id: 111
Here,
run_idis the dynamically generated id from your testrail account (say,run_id: 111) -
To create a dynamic
Test Runand to update results,testrail: url: https://your_url.testrail.io/ user: your@email.com password: ****** project_id: 10 suite_id: 110
Here,
project_idandsuite_idare the dynamically generated id from your testrail account;run_idis optional in this case. -
To delete all test-runs before execution,
testrail: url: https://your_url.testrail.io/ user: your@email.com password: ****** clean_testrun: true project_id: 10 suite_id: 110
Set,
clean_testrun: falseif you don't want to clean the existing test runs; but this keyword is optional. -
Skip specific test-runs from deletion: set
clean_testrun: true&skip_testrun_ids: value, ...testrail: url: https://your_url.testrail.io/ user: your@email.com password: ****** clean_testrun: true skip_testrun_ids: 473, 475 project_id: 10 suite_id: 110
Here,
skip_testrun_ids: valueis optional. -
Disable
testrail-rspecexecution: setallow: yestestrail: url: https://your_url.testrail.io/ user: your@email.com password: ****** run_id: 111 allow: no
Here,
allow: yesis optional. -
Use Environment variables to pass testrail config values
testrail: url: ENV['URL'] user: ENV['TESTRAIL_USER'] password: ENV['TESTRAIL_PASSWORD'] run_id: ENV['RUN_ID'] clean_testrun: false project_id: 10 suite_id: 110
Example,
rake ./demo_spec.rb TESTRAIL_USER=your@email.com TESTRAIL_PASSWORD=****** RUN_ID=564 URL=https://your_url.testrail.io/
Update the results through Hooks on end of each test
config.after(:each) do |scenario|
TestrailRSpec::UpdateTestRails.new(scenario).upload_result
end
Is there any demo available for this gem?
Yes, you can use this capybara demo as an example, https://github.com/prashanth-sams/testrail-rspec
bundle install
rake test