cucumber_monitor 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,8 @@
1
+ <%
2
+ rerun = File.file?('rerun.txt') ? IO.read('rerun.txt') : ""
3
+ rerun_opts = rerun.to_s.strip.empty? ? "--format #{ENV['CUCUMBER_FORMAT'] || 'progress'} features" : "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} #{rerun}"
4
+ std_opts = "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} --strict --tags ~@wip"
5
+ %>
6
+ default: <%= std_opts %> features
7
+ wip: --tags @wip:3 --wip features
8
+ rerun: <%= rerun_opts %> --format rerun --out rerun.txt --strict --tags ~@wip
@@ -32,9 +32,9 @@
32
32
 
33
33
  "en":
34
34
  results:
35
- passed: passou
36
- failed: falhou
37
- skipped: pulou
35
+ passed: passed
36
+ failed: failed
37
+ skipped: skipped
38
38
  buttons:
39
39
  search: Search
40
40
  links:
@@ -3,12 +3,16 @@
3
3
  module CucumberMonitor
4
4
  class Base
5
5
 
6
+ def self.path
7
+ CucumberMonitor.path
8
+ end
9
+
6
10
  def self.features_path
7
- Dir.pwd.to_s + '/features'
11
+ "#{path}/features"
8
12
  end
9
13
 
10
14
  def self.cucumber_output_file
11
- Dir.pwd.to_s + '/tmp/cucumber.out'
15
+ "#{path}/tmp/cucumber.out"
12
16
  end
13
17
 
14
18
  def locate
@@ -1,3 +1,3 @@
1
1
  module CucumberMonitor
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -17,4 +17,21 @@ module CucumberMonitor
17
17
  CucumberMonitor::Base.new
18
18
  end
19
19
 
20
+ def self.path
21
+ "#{CucumberMonitor::Engine.root}#{app_test_dir}"
22
+ end
23
+
24
+ def self.app_test_dir
25
+ "/test/dummy" if Rails.env == 'test'
26
+ end
27
+
28
+ def self.cucumber_rails_ready?
29
+ files = [
30
+ "#{path}/script/cucumber",
31
+ "#{path}/features",
32
+ "#{path}/lib/tasks/cucumber.rake"
33
+ ]
34
+ files.all? { |f| File.exist?(f) } && YAML.load_file("#{path}/config/database.yml").has_key?("cucumber")
35
+ end
36
+
20
37
  end
@@ -1,4 +1,12 @@
1
1
  require 'test_helper'
2
2
 
3
3
  class CucumberMonitorTest < ActiveSupport::TestCase
4
+
5
+ test "should tell cucumber-rails is ready" do
6
+ uninstall_cucumber_rails
7
+ Dir.chdir("#{@path}")
8
+ `rails generate cucumber:install`
9
+ Dir.chdir("..")
10
+ assert CucumberMonitor.cucumber_rails_ready?
11
+ end
4
12
  end
@@ -0,0 +1,8 @@
1
+ <%
2
+ rerun = File.file?('rerun.txt') ? IO.read('rerun.txt') : ""
3
+ rerun_opts = rerun.to_s.strip.empty? ? "--format #{ENV['CUCUMBER_FORMAT'] || 'progress'} features" : "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} #{rerun}"
4
+ std_opts = "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} --strict --tags ~@wip"
5
+ %>
6
+ default: <%= std_opts %> features
7
+ wip: --tags @wip:3 --wip features
8
+ rerun: <%= rerun_opts %> --format rerun --out rerun.txt --strict --tags ~@wip
@@ -12,7 +12,7 @@ development:
12
12
  # Warning: The database defined as "test" will be erased and
13
13
  # re-generated from your development database when you run "rake".
14
14
  # Do not set this db to the same as development or production.
15
- test:
15
+ test: &test
16
16
  adapter: sqlite3
17
17
  database: db/test.sqlite3
18
18
  pool: 5
@@ -23,3 +23,6 @@ production:
23
23
  database: db/production.sqlite3
24
24
  pool: 5
25
25
  timeout: 5000
26
+
27
+ cucumber:
28
+ <<: *test
@@ -0,0 +1,10 @@
1
+ Feature: Access the system as an administrator
2
+ Scenario: Access with valid data
3
+ Given that there is an administrator with the email "admin@domain.com" and password "123456"
4
+ When I try to access the admin dashboard with the email "admin@domain.com" and senha "123456"
5
+ Then I should be at admin dashboard page
6
+
7
+ Scenario: Access with invalid data
8
+ Given that there is an administrator with the email "admin@domain.com" and password "123456"
9
+ When I try to access the admin dashbaord with the email "admin@domain.com" and senha "654321"
10
+ Then I should see "Invalid username/password"
@@ -0,0 +1,23 @@
1
+ Feature: Change personal data
2
+
3
+ Background:
4
+ Given my name is Peter and I have an account in the system
5
+
6
+ Scenario: Changing personal data flow
7
+ When I access the system
8
+ And I press "My account"
9
+ Then I should see my personal information
10
+ When I press "Change my data"
11
+ And I fill in "Name" with "Peter Summers"
12
+ And I press "Save"
13
+ Then I should see "Personal data successfully changed"
14
+ And I should see "Petter Summers"
15
+
16
+ Scenario: Listing my roles
17
+ When I access the system
18
+ And I press "My roles"
19
+ I should see the following table:
20
+ | # | Role name |
21
+ | 1 | Admin |
22
+ | 2 | Member |
23
+ | 3 | Publisher |
@@ -0,0 +1,59 @@
1
+ # IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.
2
+ # It is recommended to regenerate this file in the future when you upgrade to a
3
+ # newer version of cucumber-rails. Consider adding your own code to a new file
4
+ # instead of editing this one. Cucumber will automatically load all features/**/*.rb
5
+ # files.
6
+
7
+ require 'cucumber/rails'
8
+
9
+ # Capybara defaults to XPath selectors rather than Webrat's default of CSS3. In
10
+ # order to ease the transition to Capybara we set the default here. If you'd
11
+ # prefer to use XPath just remove this line and adjust any selectors in your
12
+ # steps to use the XPath syntax.
13
+ Capybara.default_selector = :css
14
+
15
+ # By default, any exception happening in your Rails application will bubble up
16
+ # to Cucumber so that your scenario will fail. This is a different from how
17
+ # your application behaves in the production environment, where an error page will
18
+ # be rendered instead.
19
+ #
20
+ # Sometimes we want to override this default behaviour and allow Rails to rescue
21
+ # exceptions and display an error page (just like when the app is running in production).
22
+ # Typical scenarios where you want to do this is when you test your error pages.
23
+ # There are two ways to allow Rails to rescue exceptions:
24
+ #
25
+ # 1) Tag your scenario (or feature) with @allow-rescue
26
+ #
27
+ # 2) Set the value below to true. Beware that doing this globally is not
28
+ # recommended as it will mask a lot of errors for you!
29
+ #
30
+ ActionController::Base.allow_rescue = false
31
+
32
+ # Remove/comment out the lines below if your app doesn't have a database.
33
+ # For some databases (like MongoDB and CouchDB) you may need to use :truncation instead.
34
+ begin
35
+ DatabaseCleaner.strategy = :transaction
36
+ rescue NameError
37
+ raise "You need to add database_cleaner to your Gemfile (in the :test group) if you wish to use it."
38
+ end
39
+
40
+ # You may also want to configure DatabaseCleaner to use different strategies for certain features and scenarios.
41
+ # See the DatabaseCleaner documentation for details. Example:
42
+ #
43
+ # Before('@no-txn,@selenium,@culerity,@celerity,@javascript') do
44
+ # # { :except => [:widgets] } may not do what you expect here
45
+ # # as tCucumber::Rails::Database.javascript_strategy overrides
46
+ # # this setting.
47
+ # DatabaseCleaner.strategy = :truncation
48
+ # end
49
+ #
50
+ # Before('~@no-txn', '~@selenium', '~@culerity', '~@celerity', '~@javascript') do
51
+ # DatabaseCleaner.strategy = :transaction
52
+ # end
53
+ #
54
+
55
+ # Possible values are :truncation and :transaction
56
+ # The :transaction strategy is faster, but might give you threading problems.
57
+ # See https://github.com/cucumber/cucumber-rails/blob/master/features/choose_javascript_database_strategy.feature
58
+ Cucumber::Rails::Database.javascript_strategy = :truncation
59
+
@@ -0,0 +1,65 @@
1
+ # IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.
2
+ # It is recommended to regenerate this file in the future when you upgrade to a
3
+ # newer version of cucumber-rails. Consider adding your own code to a new file
4
+ # instead of editing this one. Cucumber will automatically load all features/**/*.rb
5
+ # files.
6
+
7
+
8
+ unless ARGV.any? {|a| a =~ /^gems/} # Don't load anything when running the gems:* tasks
9
+
10
+ vendored_cucumber_bin = Dir["#{Rails.root}/vendor/{gems,plugins}/cucumber*/bin/cucumber"].first
11
+ $LOAD_PATH.unshift(File.dirname(vendored_cucumber_bin) + '/../lib') unless vendored_cucumber_bin.nil?
12
+
13
+ begin
14
+ require 'cucumber/rake/task'
15
+
16
+ namespace :cucumber do
17
+ Cucumber::Rake::Task.new({:ok => 'db:test:prepare'}, 'Run features that should pass') do |t|
18
+ t.binary = vendored_cucumber_bin # If nil, the gem's binary is used.
19
+ t.fork = true # You may get faster startup if you set this to false
20
+ t.profile = 'default'
21
+ end
22
+
23
+ Cucumber::Rake::Task.new({:wip => 'db:test:prepare'}, 'Run features that are being worked on') do |t|
24
+ t.binary = vendored_cucumber_bin
25
+ t.fork = true # You may get faster startup if you set this to false
26
+ t.profile = 'wip'
27
+ end
28
+
29
+ Cucumber::Rake::Task.new({:rerun => 'db:test:prepare'}, 'Record failing features and run only them if any exist') do |t|
30
+ t.binary = vendored_cucumber_bin
31
+ t.fork = true # You may get faster startup if you set this to false
32
+ t.profile = 'rerun'
33
+ end
34
+
35
+ desc 'Run all features'
36
+ task :all => [:ok, :wip]
37
+
38
+ task :statsetup do
39
+ require 'rails/code_statistics'
40
+ ::STATS_DIRECTORIES << %w(Cucumber\ features features) if File.exist?('features')
41
+ ::CodeStatistics::TEST_TYPES << "Cucumber features" if File.exist?('features')
42
+ end
43
+ end
44
+ desc 'Alias for cucumber:ok'
45
+ task :cucumber => 'cucumber:ok'
46
+
47
+ task :default => :cucumber
48
+
49
+ task :features => :cucumber do
50
+ STDERR.puts "*** The 'features' task is deprecated. See rake -T cucumber ***"
51
+ end
52
+
53
+ # In case we don't have ActiveRecord, append a no-op task that we can depend upon.
54
+ task 'db:test:prepare' do
55
+ end
56
+
57
+ task :stats => 'cucumber:statsetup'
58
+ rescue LoadError
59
+ desc 'cucumber rake task not available (cucumber not installed)'
60
+ task :cucumber do
61
+ abort 'Cucumber rake task is not available. Be sure to install cucumber as a gem or plugin'
62
+ end
63
+ end
64
+
65
+ end
@@ -0,0 +1,2 @@
1
+ Connecting to database specified by database.yml
2
+ Connecting to database specified by database.yml