cucumber_monitor 0.0.6 → 0.0.7

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.
@@ -11,6 +11,10 @@ module CucumberMonitor
11
11
  "#{path}/features"
12
12
  end
13
13
 
14
+ def self.step_definitions_path
15
+ "#{features_path}/step_definitions"
16
+ end
17
+
14
18
  def self.cucumber_output_file
15
19
  "#{path}/tmp/cucumber.out"
16
20
  end
@@ -25,6 +29,12 @@ module CucumberMonitor
25
29
  search_and_include_features(dir_entries)
26
30
  end
27
31
 
32
+ def step_definitions_files
33
+ collection = []
34
+ dir_entries = Dir.entries(self.class.step_definitions_path)
35
+ search_and_include_step_definitions(dir_entries)
36
+ end
37
+
28
38
  def search_and_include_features(dir_entries, collection=[])
29
39
  dir_entries.each do |entrie|
30
40
  if entrie.include?('.feature')
@@ -34,6 +44,15 @@ module CucumberMonitor
34
44
  collection
35
45
  end
36
46
 
47
+ def search_and_include_step_definitions(dir_entries, collection=[])
48
+ dir_entries.each do |entrie|
49
+ if entrie.include?('_step.rb')
50
+ collection << entrie
51
+ end
52
+ end
53
+ collection
54
+ end
55
+
37
56
  def features
38
57
  collection = []
39
58
  files.each do |file|
@@ -42,6 +61,14 @@ module CucumberMonitor
42
61
  collection
43
62
  end
44
63
 
64
+ def step_definitions
65
+ collection = []
66
+ step_definitions_files.each do |file|
67
+ collection << CucumberMonitor::StepDefinitionFile.new(file)
68
+ end
69
+ collection
70
+ end
71
+
45
72
  def search(criteria)
46
73
  results = []
47
74
  features.each do |feature|
@@ -54,5 +81,16 @@ module CucumberMonitor
54
81
  results
55
82
  end
56
83
 
84
+ def search_match(criteria)
85
+ results = []
86
+ step_definitions.each do |step_definition|
87
+ step_definition.definitions.each do |definition|
88
+ matcher = Amatch::Sellers.new(criteria)
89
+ results << {definition: definition, score: matcher.match(definition.description)}
90
+ end
91
+ end
92
+ results.min {|a,b| a[:score] <=> b[:score]}[:definition] if results.any?
93
+ end
94
+
57
95
  end
58
96
  end
@@ -0,0 +1,45 @@
1
+ # encoding: UTF-8
2
+
3
+ module CucumberMonitor
4
+
5
+ class Definition
6
+
7
+ attr_accessor :description, :file
8
+
9
+ def initialize(description, file)
10
+ @description = description
11
+ @file = file
12
+ end
13
+
14
+ def raw_content
15
+ df = []
16
+ started = false
17
+ stopped = false
18
+ record = false
19
+ count = 0
20
+
21
+ file.lines.each_with_index do |line, i|
22
+
23
+ if line.include?(description)
24
+ started = true
25
+ end
26
+ if started && !stopped
27
+ df << line
28
+ stopped = true if line.strip.match(/^end$/)
29
+ count += 1
30
+ end
31
+ end
32
+ df
33
+ end
34
+
35
+ def content
36
+ raw_content.collect{|c| c.strip }
37
+ end
38
+
39
+ def core_content
40
+ content[1..-2].collect{|c| c.strip }
41
+ end
42
+
43
+ end
44
+
45
+ end
@@ -28,6 +28,7 @@ module CucumberMonitor
28
28
  prepared_json = json
29
29
  prepared_json.first['elements'].each do |element|
30
30
  element['steps'].each do |step|
31
+ puts step['match']['location']
31
32
  description = "#{step['keyword']}#{step['name']}"
32
33
  code_first_part = element['name'].blank? ? element['keyword'].parameterize : element['name'].parameterize
33
34
  code_second_part = description.parameterize
@@ -1,3 +1,5 @@
1
+ require 'amatch'
2
+
1
3
  module CucumberMonitor
2
4
 
3
5
  class Step
@@ -13,6 +15,10 @@ module CucumberMonitor
13
15
  @id = id
14
16
  end
15
17
 
18
+ def description_without_keyword
19
+ description.gsub(/^\w+\s/,'')
20
+ end
21
+
16
22
  def siblings_and_self
17
23
  parent.steps
18
24
  end
@@ -51,6 +57,10 @@ module CucumberMonitor
51
57
  !table?
52
58
  end
53
59
 
60
+ def definition
61
+ Base.new.search_match(description)
62
+ end
63
+
54
64
  def formatted
55
65
  output = ""
56
66
  if table_first_line?
@@ -0,0 +1,40 @@
1
+ # encoding: UTF-8
2
+
3
+ module CucumberMonitor
4
+
5
+ class StepDefinitionFile
6
+
7
+ attr_accessor :file
8
+
9
+ def self.keywords
10
+ [I18n.t("given"), I18n.t("when"), I18n.t("then"), I18n.t("and"), I18n.t("but")].collect{|c| c[2..-1]}
11
+ end
12
+
13
+ def initialize(file)
14
+ @file = file
15
+ end
16
+
17
+ def name
18
+ file[0..-9]
19
+ end
20
+
21
+ def lines
22
+ f = open(CucumberMonitor::Base.step_definitions_path + '/' + file)
23
+ file_lines = f.readlines
24
+ f.close
25
+ file_lines
26
+ end
27
+
28
+ def definitions
29
+ df = []
30
+ lines.each do |line|
31
+ if self.class.keywords.any?{|k| line.include?(k)}
32
+ df << Definition.new(line.strip,self)
33
+ end
34
+ end
35
+ df
36
+ end
37
+
38
+ end
39
+
40
+ end
@@ -1,6 +1,11 @@
1
1
  # encoding: UTF-8
2
2
 
3
+ require 'amatch'
4
+
3
5
  class String
6
+
7
+ include Amatch
8
+
4
9
  def clean
5
10
  term = self.split(': ')[1]
6
11
  term.strip if term
@@ -1,3 +1,3 @@
1
1
  module CucumberMonitor
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
@@ -4,6 +4,8 @@ require "cucumber_monitor/engine"
4
4
 
5
5
  require 'cucumber_monitor/base'
6
6
  require 'cucumber_monitor/feature_file'
7
+ require 'cucumber_monitor/step_definition_file'
8
+ require 'cucumber_monitor/definition'
7
9
  require 'cucumber_monitor/scenario'
8
10
  require 'cucumber_monitor/context'
9
11
  require 'cucumber_monitor/step'
data/test/base_test.rb CHANGED
@@ -3,19 +3,20 @@ require 'test_helper'
3
3
  class BaseTest < ActiveSupport::TestCase
4
4
 
5
5
  test "should return all features" do
6
- assert_equal 2, @cucumber.features.size
6
+ assert_equal 3, @cucumber.features.size
7
7
 
8
- features = ['administration.feature','change_my_data.feature']
8
+ features = ['administration.feature','change_my_data.feature','google_search.feature']
9
9
  assert_equal features, @cucumber.features.map(&:file)
10
10
  end
11
11
 
12
12
  test "should find features by searching" do
13
- assert_equal 2, @cucumber.features.where(name: 'a').size
14
- features = ['administration.feature','change_my_data.feature']
13
+ assert_equal 3, @cucumber.features.where(name: 'a').size
14
+ features = ['administration.feature','change_my_data.feature','google_search.feature']
15
15
  assert_equal features, @cucumber.features.where(name: 'a').map(&:file)
16
16
 
17
17
  assert_equal 'administration.feature', @cucumber.features.where(name: 'admin').file
18
- assert_equal 'change_my_data.feature', @cucumber.features.where(name: 'change').file
18
+ assert_equal 'change_my_data.feature', @cucumber.features.where(name: 'change').file
19
+ assert_equal 'google_search.feature', @cucumber.features.where(name: 'search').file
19
20
  end
20
21
 
21
22
  test 'should find all steps that matches with a given term' do
@@ -28,7 +29,8 @@ class BaseTest < ActiveSupport::TestCase
28
29
  'Then I should see my personal information',
29
30
  'Then I should see "Personal data successfully changed"',
30
31
  'And I should see "Petter Summers"',
31
- 'I should see the following table:'
32
+ 'I should see the following table:',
33
+ 'Then I should see "The New York Times - Breaking News, World News & Multimedia"'
32
34
  ]
33
35
 
34
36
  assert_equal steps, @cucumber.search(term).map(&:description)
data/test/context_test.rb CHANGED
@@ -3,11 +3,11 @@ require 'test_helper'
3
3
  class ContextTest < ActiveSupport::TestCase
4
4
 
5
5
  test "context should return its steps" do
6
- assert_equal 1, @feature_two.contexts.first.steps.size
6
+ assert_equal 1, @feature_three.contexts.first.steps.size
7
7
 
8
8
  step_1 = 'Given my name is Peter and I have an account in the system'
9
9
 
10
- assert_equal step_1, @feature_two.contexts.first.steps[0].description
10
+ assert_equal step_1, @feature_three.contexts.first.steps[0].description
11
11
  end
12
12
 
13
13
  end
@@ -0,0 +1,6 @@
1
+ @mechanize
2
+ Feature: Searching on Google
3
+ Scenario: Search for New York Times
4
+ Given I am at the google page
5
+ When I search for "New York Times"
6
+ Then I should see "The New York Times - Breaking News, World News & Multimedia"
@@ -0,0 +1,11 @@
1
+ Given /^I am at the google page$/ do
2
+ visit "http://www.google.com"
3
+ end
4
+
5
+ When /^I search for "(.*?)"$/ do |term|
6
+ fill_in 'gbqfq', with: term
7
+ end
8
+
9
+ Then /^I should see "(.*?)"$/ do |string|
10
+ page.has_content?(string)
11
+ end
@@ -0,0 +1 @@
1
+ require 'capybara/mechanize/cucumber'
@@ -1,3 +1,48 @@
1
1
  Connecting to database specified by database.yml
2
2
  Connecting to database specified by database.yml
3
3
  Connecting to database specified by database.yml
4
+ Connecting to database specified by database.yml
5
+ Connecting to database specified by database.yml
6
+ Connecting to database specified by database.yml
7
+ Connecting to database specified by database.yml
8
+ Connecting to database specified by database.yml
9
+ Connecting to database specified by database.yml
10
+ Connecting to database specified by database.yml
11
+ Connecting to database specified by database.yml
12
+ Connecting to database specified by database.yml
13
+ Connecting to database specified by database.yml
14
+ Connecting to database specified by database.yml
15
+ Connecting to database specified by database.yml
16
+ Connecting to database specified by database.yml
17
+ Connecting to database specified by database.yml
18
+ Connecting to database specified by database.yml
19
+ Connecting to database specified by database.yml
20
+ Connecting to database specified by database.yml
21
+ Connecting to database specified by database.yml
22
+ Connecting to database specified by database.yml
23
+ Connecting to database specified by database.yml
24
+ Connecting to database specified by database.yml
25
+ Connecting to database specified by database.yml
26
+ Connecting to database specified by database.yml
27
+ Connecting to database specified by database.yml
28
+ Connecting to database specified by database.yml
29
+ Connecting to database specified by database.yml
30
+ Connecting to database specified by database.yml
31
+ Connecting to database specified by database.yml
32
+ Connecting to database specified by database.yml
33
+ Connecting to database specified by database.yml
34
+ Connecting to database specified by database.yml
35
+ Connecting to database specified by database.yml
36
+ Connecting to database specified by database.yml
37
+ Connecting to database specified by database.yml
38
+ Connecting to database specified by database.yml
39
+ Connecting to database specified by database.yml
40
+ Connecting to database specified by database.yml
41
+ Connecting to database specified by database.yml
42
+ Connecting to database specified by database.yml
43
+ Connecting to database specified by database.yml
44
+ Connecting to database specified by database.yml
45
+ Connecting to database specified by database.yml
46
+ Connecting to database specified by database.yml
47
+ Connecting to database specified by database.yml
48
+ Connecting to database specified by database.yml
@@ -1042,3 +1042,576 @@ Connecting to database specified by database.yml
1042
1042
   (0.0ms) rollback transaction
1043
1043
   (0.0ms) begin transaction
1044
1044
   (0.0ms) rollback transaction
1045
+ Connecting to database specified by database.yml
1046
+  (0.4ms) begin transaction
1047
+  (0.1ms) rollback transaction
1048
+  (0.0ms) begin transaction
1049
+  (0.0ms) rollback transaction
1050
+  (0.0ms) begin transaction
1051
+  (0.0ms) rollback transaction
1052
+  (0.0ms) begin transaction
1053
+  (0.0ms) rollback transaction
1054
+  (0.0ms) begin transaction
1055
+  (0.2ms) rollback transaction
1056
+  (0.0ms) begin transaction
1057
+  (0.1ms) rollback transaction
1058
+  (0.0ms) begin transaction
1059
+  (0.0ms) rollback transaction
1060
+  (0.0ms) begin transaction
1061
+  (0.0ms) rollback transaction
1062
+  (0.0ms) begin transaction
1063
+  (0.1ms) rollback transaction
1064
+  (0.0ms) begin transaction
1065
+  (0.0ms) rollback transaction
1066
+  (0.0ms) begin transaction
1067
+  (0.0ms) rollback transaction
1068
+  (0.0ms) begin transaction
1069
+  (0.0ms) rollback transaction
1070
+  (0.0ms) begin transaction
1071
+  (0.0ms) rollback transaction
1072
+  (0.0ms) begin transaction
1073
+  (0.1ms) rollback transaction
1074
+ Connecting to database specified by database.yml
1075
+ Connecting to database specified by database.yml
1076
+ Connecting to database specified by database.yml
1077
+  (0.4ms) begin transaction
1078
+  (0.1ms) rollback transaction
1079
+  (0.0ms) begin transaction
1080
+  (0.0ms) rollback transaction
1081
+ Connecting to database specified by database.yml
1082
+  (0.5ms) begin transaction
1083
+  (0.1ms) rollback transaction
1084
+ Connecting to database specified by database.yml
1085
+  (0.4ms) begin transaction
1086
+
1087
+
1088
+ Started GET "/" for 127.0.0.1 at 2012-09-28 10:11:42 -0300
1089
+  (0.1ms) rollback transaction
1090
+ Connecting to database specified by database.yml
1091
+  (0.4ms) begin transaction
1092
+
1093
+
1094
+ Started GET "/" for 127.0.0.1 at 2012-09-28 10:12:04 -0300
1095
+  (0.1ms) rollback transaction
1096
+ Connecting to database specified by database.yml
1097
+ Connecting to database specified by database.yml
1098
+  (0.4ms) begin transaction
1099
+  (0.1ms) rollback transaction
1100
+ Connecting to database specified by database.yml
1101
+  (0.4ms) begin transaction
1102
+  (0.1ms) rollback transaction
1103
+ Connecting to database specified by database.yml
1104
+  (0.4ms) begin transaction
1105
+  (0.1ms) rollback transaction
1106
+ Connecting to database specified by database.yml
1107
+  (0.4ms) begin transaction
1108
+  (0.1ms) rollback transaction
1109
+ Connecting to database specified by database.yml
1110
+  (0.4ms) begin transaction
1111
+  (0.1ms) rollback transaction
1112
+ Connecting to database specified by database.yml
1113
+  (0.4ms) begin transaction
1114
+  (0.1ms) rollback transaction
1115
+  (0.0ms) begin transaction
1116
+  (0.0ms) rollback transaction
1117
+  (0.0ms) begin transaction
1118
+  (0.0ms) rollback transaction
1119
+  (0.0ms) begin transaction
1120
+  (0.0ms) rollback transaction
1121
+  (0.0ms) begin transaction
1122
+  (0.1ms) rollback transaction
1123
+  (0.1ms) begin transaction
1124
+  (0.0ms) rollback transaction
1125
+  (0.0ms) begin transaction
1126
+  (0.0ms) rollback transaction
1127
+  (0.0ms) begin transaction
1128
+  (0.0ms) rollback transaction
1129
+  (0.1ms) begin transaction
1130
+  (0.1ms) rollback transaction
1131
+  (0.0ms) begin transaction
1132
+  (0.0ms) rollback transaction
1133
+  (0.0ms) begin transaction
1134
+  (0.0ms) rollback transaction
1135
+  (0.0ms) begin transaction
1136
+  (0.0ms) rollback transaction
1137
+  (0.0ms) begin transaction
1138
+  (0.1ms) rollback transaction
1139
+  (0.0ms) begin transaction
1140
+  (0.1ms) rollback transaction
1141
+  (0.0ms) begin transaction
1142
+  (0.0ms) rollback transaction
1143
+ Connecting to database specified by database.yml
1144
+  (0.4ms) begin transaction
1145
+  (0.1ms) rollback transaction
1146
+  (0.0ms) begin transaction
1147
+  (0.0ms) rollback transaction
1148
+  (0.0ms) begin transaction
1149
+  (0.0ms) rollback transaction
1150
+  (0.0ms) begin transaction
1151
+  (0.0ms) rollback transaction
1152
+  (0.0ms) begin transaction
1153
+  (0.1ms) rollback transaction
1154
+  (0.0ms) begin transaction
1155
+  (0.1ms) rollback transaction
1156
+  (0.0ms) begin transaction
1157
+  (0.0ms) rollback transaction
1158
+  (0.0ms) begin transaction
1159
+  (0.0ms) rollback transaction
1160
+  (0.0ms) begin transaction
1161
+  (0.1ms) rollback transaction
1162
+  (0.0ms) begin transaction
1163
+  (0.0ms) rollback transaction
1164
+  (0.0ms) begin transaction
1165
+  (0.0ms) rollback transaction
1166
+  (0.0ms) begin transaction
1167
+  (0.0ms) rollback transaction
1168
+  (0.0ms) begin transaction
1169
+  (0.0ms) rollback transaction
1170
+  (0.0ms) begin transaction
1171
+  (0.0ms) rollback transaction
1172
+  (0.0ms) begin transaction
1173
+  (0.0ms) rollback transaction
1174
+ Connecting to database specified by database.yml
1175
+  (0.4ms) begin transaction
1176
+  (0.1ms) rollback transaction
1177
+  (0.0ms) begin transaction
1178
+  (0.0ms) rollback transaction
1179
+  (0.0ms) begin transaction
1180
+  (0.0ms) rollback transaction
1181
+  (0.0ms) begin transaction
1182
+  (0.0ms) rollback transaction
1183
+  (0.0ms) begin transaction
1184
+  (0.1ms) rollback transaction
1185
+  (0.0ms) begin transaction
1186
+  (0.0ms) rollback transaction
1187
+  (0.0ms) begin transaction
1188
+  (0.0ms) rollback transaction
1189
+  (0.0ms) begin transaction
1190
+  (0.1ms) rollback transaction
1191
+  (0.0ms) begin transaction
1192
+  (0.0ms) rollback transaction
1193
+  (0.0ms) begin transaction
1194
+  (0.0ms) rollback transaction
1195
+  (0.0ms) begin transaction
1196
+  (0.0ms) rollback transaction
1197
+  (0.0ms) begin transaction
1198
+  (0.0ms) rollback transaction
1199
+  (0.0ms) begin transaction
1200
+  (0.1ms) rollback transaction
1201
+  (0.0ms) begin transaction
1202
+  (0.0ms) rollback transaction
1203
+  (0.0ms) begin transaction
1204
+  (0.0ms) rollback transaction
1205
+ Connecting to database specified by database.yml
1206
+  (0.4ms) begin transaction
1207
+  (0.1ms) rollback transaction
1208
+  (0.0ms) begin transaction
1209
+  (0.1ms) rollback transaction
1210
+  (0.0ms) begin transaction
1211
+  (0.0ms) rollback transaction
1212
+  (0.0ms) begin transaction
1213
+  (0.1ms) rollback transaction
1214
+  (0.0ms) begin transaction
1215
+  (0.1ms) rollback transaction
1216
+  (0.0ms) begin transaction
1217
+  (0.0ms) rollback transaction
1218
+  (0.0ms) begin transaction
1219
+  (0.0ms) rollback transaction
1220
+  (0.0ms) begin transaction
1221
+  (0.0ms) rollback transaction
1222
+  (0.0ms) begin transaction
1223
+  (0.0ms) rollback transaction
1224
+  (0.0ms) begin transaction
1225
+  (0.0ms) rollback transaction
1226
+  (0.0ms) begin transaction
1227
+  (0.1ms) rollback transaction
1228
+  (0.0ms) begin transaction
1229
+  (0.0ms) rollback transaction
1230
+  (0.0ms) begin transaction
1231
+  (0.1ms) rollback transaction
1232
+  (0.0ms) begin transaction
1233
+  (0.0ms) rollback transaction
1234
+  (0.0ms) begin transaction
1235
+  (0.0ms) rollback transaction
1236
+ Connecting to database specified by database.yml
1237
+  (0.4ms) begin transaction
1238
+  (0.1ms) rollback transaction
1239
+  (0.0ms) begin transaction
1240
+  (0.0ms) rollback transaction
1241
+  (0.0ms) begin transaction
1242
+  (0.0ms) rollback transaction
1243
+  (0.0ms) begin transaction
1244
+  (0.0ms) rollback transaction
1245
+  (0.1ms) begin transaction
1246
+  (0.1ms) rollback transaction
1247
+  (0.1ms) begin transaction
1248
+  (0.0ms) rollback transaction
1249
+  (0.0ms) begin transaction
1250
+  (0.0ms) rollback transaction
1251
+  (0.0ms) begin transaction
1252
+  (0.0ms) rollback transaction
1253
+  (0.0ms) begin transaction
1254
+  (0.0ms) rollback transaction
1255
+  (0.0ms) begin transaction
1256
+  (0.0ms) rollback transaction
1257
+  (0.0ms) begin transaction
1258
+  (0.0ms) rollback transaction
1259
+  (0.0ms) begin transaction
1260
+  (0.0ms) rollback transaction
1261
+  (0.0ms) begin transaction
1262
+  (0.0ms) rollback transaction
1263
+  (0.0ms) begin transaction
1264
+  (0.0ms) rollback transaction
1265
+  (0.0ms) begin transaction
1266
+  (0.0ms) rollback transaction
1267
+ Connecting to database specified by database.yml
1268
+  (0.4ms) begin transaction
1269
+  (0.1ms) rollback transaction
1270
+  (0.0ms) begin transaction
1271
+  (0.0ms) rollback transaction
1272
+  (0.0ms) begin transaction
1273
+  (0.0ms) rollback transaction
1274
+  (0.0ms) begin transaction
1275
+  (0.1ms) rollback transaction
1276
+  (0.0ms) begin transaction
1277
+  (0.1ms) rollback transaction
1278
+  (0.0ms) begin transaction
1279
+  (0.0ms) rollback transaction
1280
+  (0.0ms) begin transaction
1281
+  (0.0ms) rollback transaction
1282
+  (0.0ms) begin transaction
1283
+  (0.1ms) rollback transaction
1284
+  (0.0ms) begin transaction
1285
+  (0.1ms) rollback transaction
1286
+  (0.0ms) begin transaction
1287
+  (0.0ms) rollback transaction
1288
+  (0.1ms) begin transaction
1289
+  (0.0ms) rollback transaction
1290
+  (0.0ms) begin transaction
1291
+  (0.0ms) rollback transaction
1292
+  (0.0ms) begin transaction
1293
+  (0.0ms) rollback transaction
1294
+  (0.0ms) begin transaction
1295
+  (0.0ms) rollback transaction
1296
+  (0.0ms) begin transaction
1297
+  (0.0ms) rollback transaction
1298
+ Connecting to database specified by database.yml
1299
+  (0.4ms) begin transaction
1300
+  (0.1ms) rollback transaction
1301
+  (0.0ms) begin transaction
1302
+  (0.0ms) rollback transaction
1303
+  (0.0ms) begin transaction
1304
+  (0.0ms) rollback transaction
1305
+  (0.0ms) begin transaction
1306
+  (0.1ms) rollback transaction
1307
+  (0.0ms) begin transaction
1308
+  (0.1ms) rollback transaction
1309
+  (0.0ms) begin transaction
1310
+  (0.0ms) rollback transaction
1311
+  (0.0ms) begin transaction
1312
+  (0.1ms) rollback transaction
1313
+  (0.0ms) begin transaction
1314
+  (0.0ms) rollback transaction
1315
+  (0.0ms) begin transaction
1316
+  (0.0ms) rollback transaction
1317
+  (0.0ms) begin transaction
1318
+  (0.0ms) rollback transaction
1319
+  (0.1ms) begin transaction
1320
+  (0.0ms) rollback transaction
1321
+  (0.0ms) begin transaction
1322
+  (0.0ms) rollback transaction
1323
+  (0.0ms) begin transaction
1324
+  (0.0ms) rollback transaction
1325
+  (0.0ms) begin transaction
1326
+  (0.0ms) rollback transaction
1327
+  (0.0ms) begin transaction
1328
+  (0.0ms) rollback transaction
1329
+ Connecting to database specified by database.yml
1330
+  (0.4ms) begin transaction
1331
+  (0.1ms) rollback transaction
1332
+  (0.0ms) begin transaction
1333
+  (0.0ms) rollback transaction
1334
+  (0.0ms) begin transaction
1335
+  (0.0ms) rollback transaction
1336
+  (0.0ms) begin transaction
1337
+  (0.1ms) rollback transaction
1338
+  (0.0ms) begin transaction
1339
+  (0.1ms) rollback transaction
1340
+  (0.0ms) begin transaction
1341
+  (0.0ms) rollback transaction
1342
+  (0.0ms) begin transaction
1343
+  (0.0ms) rollback transaction
1344
+  (0.0ms) begin transaction
1345
+  (0.0ms) rollback transaction
1346
+  (0.1ms) begin transaction
1347
+  (0.1ms) rollback transaction
1348
+  (0.0ms) begin transaction
1349
+  (0.1ms) rollback transaction
1350
+  (0.1ms) begin transaction
1351
+  (0.0ms) rollback transaction
1352
+  (0.0ms) begin transaction
1353
+  (0.0ms) rollback transaction
1354
+  (0.0ms) begin transaction
1355
+  (0.0ms) rollback transaction
1356
+  (0.0ms) begin transaction
1357
+  (0.0ms) rollback transaction
1358
+  (0.0ms) begin transaction
1359
+  (0.0ms) rollback transaction
1360
+ Connecting to database specified by database.yml
1361
+  (0.4ms) begin transaction
1362
+
1363
+
1364
+ Started GET "/" for 127.0.0.1 at 2012-09-28 10:49:41 -0300
1365
+  (0.1ms) rollback transaction
1366
+ Connecting to database specified by database.yml
1367
+  (0.4ms) begin transaction
1368
+  (0.1ms) rollback transaction
1369
+  (0.0ms) begin transaction
1370
+  (0.0ms) rollback transaction
1371
+  (0.0ms) begin transaction
1372
+  (0.0ms) rollback transaction
1373
+  (0.0ms) begin transaction
1374
+  (0.1ms) rollback transaction
1375
+  (0.0ms) begin transaction
1376
+  (0.1ms) rollback transaction
1377
+  (0.1ms) begin transaction
1378
+  (0.1ms) rollback transaction
1379
+  (0.0ms) begin transaction
1380
+  (0.0ms) rollback transaction
1381
+  (0.0ms) begin transaction
1382
+  (0.0ms) rollback transaction
1383
+  (0.1ms) begin transaction
1384
+  (0.1ms) rollback transaction
1385
+  (0.0ms) begin transaction
1386
+  (0.0ms) rollback transaction
1387
+  (0.0ms) begin transaction
1388
+  (0.0ms) rollback transaction
1389
+  (0.0ms) begin transaction
1390
+  (0.0ms) rollback transaction
1391
+  (0.1ms) begin transaction
1392
+  (0.0ms) rollback transaction
1393
+  (0.0ms) begin transaction
1394
+  (0.0ms) rollback transaction
1395
+  (0.0ms) begin transaction
1396
+  (0.0ms) rollback transaction
1397
+ Connecting to database specified by database.yml
1398
+  (0.4ms) begin transaction
1399
+
1400
+
1401
+ Started GET "/" for 127.0.0.1 at 2012-09-28 10:53:02 -0300
1402
+  (0.1ms) rollback transaction
1403
+ Connecting to database specified by database.yml
1404
+  (0.4ms) begin transaction
1405
+  (0.1ms) rollback transaction
1406
+  (0.0ms) begin transaction
1407
+  (0.0ms) rollback transaction
1408
+  (0.0ms) begin transaction
1409
+  (0.0ms) rollback transaction
1410
+  (0.0ms) begin transaction
1411
+  (0.1ms) rollback transaction
1412
+  (0.0ms) begin transaction
1413
+  (0.1ms) rollback transaction
1414
+  (0.0ms) begin transaction
1415
+  (0.0ms) rollback transaction
1416
+  (0.0ms) begin transaction
1417
+  (0.0ms) rollback transaction
1418
+  (0.0ms) begin transaction
1419
+  (0.0ms) rollback transaction
1420
+  (0.0ms) begin transaction
1421
+  (0.0ms) rollback transaction
1422
+  (0.0ms) begin transaction
1423
+  (0.0ms) rollback transaction
1424
+  (0.0ms) begin transaction
1425
+  (0.0ms) rollback transaction
1426
+  (0.1ms) begin transaction
1427
+  (0.0ms) rollback transaction
1428
+  (0.0ms) begin transaction
1429
+  (0.0ms) rollback transaction
1430
+  (0.0ms) begin transaction
1431
+  (0.0ms) rollback transaction
1432
+  (0.0ms) begin transaction
1433
+  (0.0ms) rollback transaction
1434
+ Connecting to database specified by database.yml
1435
+  (0.4ms) begin transaction
1436
+  (0.1ms) rollback transaction
1437
+ Connecting to database specified by database.yml
1438
+  (0.4ms) begin transaction
1439
+  (0.1ms) rollback transaction
1440
+  (0.0ms) begin transaction
1441
+  (0.0ms) rollback transaction
1442
+  (0.0ms) begin transaction
1443
+  (0.0ms) rollback transaction
1444
+  (0.0ms) begin transaction
1445
+  (0.1ms) rollback transaction
1446
+  (0.0ms) begin transaction
1447
+  (0.1ms) rollback transaction
1448
+  (0.0ms) begin transaction
1449
+  (0.0ms) rollback transaction
1450
+  (0.0ms) begin transaction
1451
+  (0.0ms) rollback transaction
1452
+  (0.0ms) begin transaction
1453
+  (0.0ms) rollback transaction
1454
+  (0.0ms) begin transaction
1455
+  (0.0ms) rollback transaction
1456
+  (0.0ms) begin transaction
1457
+  (0.0ms) rollback transaction
1458
+  (0.1ms) begin transaction
1459
+  (0.1ms) rollback transaction
1460
+  (0.0ms) begin transaction
1461
+  (0.0ms) rollback transaction
1462
+  (0.0ms) begin transaction
1463
+  (0.0ms) rollback transaction
1464
+  (0.0ms) begin transaction
1465
+  (0.0ms) rollback transaction
1466
+  (0.0ms) begin transaction
1467
+  (0.0ms) rollback transaction
1468
+ Connecting to database specified by database.yml
1469
+  (0.5ms) begin transaction
1470
+  (0.1ms) rollback transaction
1471
+ Connecting to database specified by database.yml
1472
+  (0.5ms) begin transaction
1473
+  (0.1ms) rollback transaction
1474
+ Connecting to database specified by database.yml
1475
+  (0.4ms) begin transaction
1476
+  (0.1ms) rollback transaction
1477
+ Connecting to database specified by database.yml
1478
+  (0.4ms) begin transaction
1479
+  (0.1ms) rollback transaction
1480
+  (0.0ms) begin transaction
1481
+  (0.0ms) rollback transaction
1482
+  (0.0ms) begin transaction
1483
+  (0.0ms) rollback transaction
1484
+  (0.0ms) begin transaction
1485
+  (0.0ms) rollback transaction
1486
+  (0.0ms) begin transaction
1487
+  (0.0ms) rollback transaction
1488
+ Connecting to database specified by database.yml
1489
+  (0.4ms) begin transaction
1490
+  (0.1ms) rollback transaction
1491
+ Connecting to database specified by database.yml
1492
+  (0.4ms) begin transaction
1493
+  (0.1ms) rollback transaction
1494
+ Connecting to database specified by database.yml
1495
+  (0.4ms) begin transaction
1496
+  (0.1ms) rollback transaction
1497
+  (0.0ms) begin transaction
1498
+  (0.0ms) rollback transaction
1499
+  (0.0ms) begin transaction
1500
+  (0.0ms) rollback transaction
1501
+  (0.0ms) begin transaction
1502
+  (0.0ms) rollback transaction
1503
+  (0.0ms) begin transaction
1504
+  (0.1ms) rollback transaction
1505
+  (0.0ms) begin transaction
1506
+  (0.0ms) rollback transaction
1507
+  (0.0ms) begin transaction
1508
+  (0.0ms) rollback transaction
1509
+  (0.0ms) begin transaction
1510
+  (0.1ms) rollback transaction
1511
+  (0.0ms) begin transaction
1512
+  (0.0ms) rollback transaction
1513
+  (0.0ms) begin transaction
1514
+  (0.0ms) rollback transaction
1515
+  (0.0ms) begin transaction
1516
+  (0.1ms) rollback transaction
1517
+  (0.0ms) begin transaction
1518
+  (0.0ms) rollback transaction
1519
+  (0.0ms) begin transaction
1520
+  (0.0ms) rollback transaction
1521
+  (0.0ms) begin transaction
1522
+  (0.0ms) rollback transaction
1523
+  (0.0ms) begin transaction
1524
+  (0.0ms) rollback transaction
1525
+ Connecting to database specified by database.yml
1526
+  (0.4ms) begin transaction
1527
+  (0.1ms) rollback transaction
1528
+  (0.0ms) begin transaction
1529
+  (0.0ms) rollback transaction
1530
+  (0.0ms) begin transaction
1531
+  (0.0ms) rollback transaction
1532
+  (0.0ms) begin transaction
1533
+  (0.0ms) rollback transaction
1534
+  (0.0ms) begin transaction
1535
+  (0.1ms) rollback transaction
1536
+  (0.0ms) begin transaction
1537
+  (0.0ms) rollback transaction
1538
+  (0.0ms) begin transaction
1539
+  (0.0ms) rollback transaction
1540
+  (0.0ms) begin transaction
1541
+  (0.0ms) rollback transaction
1542
+  (0.0ms) begin transaction
1543
+  (0.0ms) rollback transaction
1544
+  (0.1ms) begin transaction
1545
+  (0.0ms) rollback transaction
1546
+  (0.0ms) begin transaction
1547
+  (0.0ms) rollback transaction
1548
+  (0.0ms) begin transaction
1549
+  (0.0ms) rollback transaction
1550
+  (0.0ms) begin transaction
1551
+  (0.0ms) rollback transaction
1552
+  (0.0ms) begin transaction
1553
+  (0.0ms) rollback transaction
1554
+  (0.0ms) begin transaction
1555
+  (0.0ms) rollback transaction
1556
+ Connecting to database specified by database.yml
1557
+  (0.4ms) begin transaction
1558
+  (0.1ms) rollback transaction
1559
+  (0.0ms) begin transaction
1560
+  (0.0ms) rollback transaction
1561
+  (0.0ms) begin transaction
1562
+  (0.0ms) rollback transaction
1563
+  (0.0ms) begin transaction
1564
+  (0.1ms) rollback transaction
1565
+  (0.0ms) begin transaction
1566
+  (0.1ms) rollback transaction
1567
+  (0.0ms) begin transaction
1568
+  (0.0ms) rollback transaction
1569
+  (0.0ms) begin transaction
1570
+  (0.1ms) rollback transaction
1571
+  (0.0ms) begin transaction
1572
+  (0.0ms) rollback transaction
1573
+  (0.0ms) begin transaction
1574
+  (0.0ms) rollback transaction
1575
+  (0.0ms) begin transaction
1576
+  (0.0ms) rollback transaction
1577
+  (0.0ms) begin transaction
1578
+  (0.1ms) rollback transaction
1579
+  (0.0ms) begin transaction
1580
+  (0.0ms) rollback transaction
1581
+  (0.0ms) begin transaction
1582
+  (0.0ms) rollback transaction
1583
+  (0.0ms) begin transaction
1584
+  (0.0ms) rollback transaction
1585
+  (0.0ms) begin transaction
1586
+  (0.0ms) rollback transaction
1587
+ Connecting to database specified by database.yml
1588
+  (0.4ms) begin transaction
1589
+  (0.1ms) rollback transaction
1590
+  (0.0ms) begin transaction
1591
+  (0.0ms) rollback transaction
1592
+  (0.0ms) begin transaction
1593
+  (0.0ms) rollback transaction
1594
+  (0.0ms) begin transaction
1595
+  (0.0ms) rollback transaction
1596
+  (0.0ms) begin transaction
1597
+  (0.1ms) rollback transaction
1598
+  (0.0ms) begin transaction
1599
+  (0.0ms) rollback transaction
1600
+  (0.0ms) begin transaction
1601
+  (0.0ms) rollback transaction
1602
+  (0.0ms) begin transaction
1603
+  (0.0ms) rollback transaction
1604
+  (0.0ms) begin transaction
1605
+  (0.0ms) rollback transaction
1606
+  (0.0ms) begin transaction
1607
+  (0.0ms) rollback transaction
1608
+  (0.0ms) begin transaction
1609
+  (0.0ms) rollback transaction
1610
+  (0.0ms) begin transaction
1611
+  (0.0ms) rollback transaction
1612
+  (0.0ms) begin transaction
1613
+  (0.0ms) rollback transaction
1614
+  (0.0ms) begin transaction
1615
+  (0.0ms) rollback transaction
1616
+  (0.0ms) begin transaction
1617
+  (0.0ms) rollback transaction
@@ -0,0 +1 @@
1
+ [{"keyword":"Feature","name":"Searching on Google","line":2,"description":"","tags":[{"name":"@mechanize","line":1}],"id":"searching-on-google","uri":"features/google_search.feature","elements":[{"keyword":"Scenario","name":"Search for New York Times","line":3,"description":"","id":"searching-on-google;search-for-new-york-times","type":"scenario","steps":[{"keyword":"Given ","name":"I am at the google page","line":4,"match":{"location":"features/step_definitions/google_search_step.rb:1"},"result":{"status":"passed"}},{"keyword":"When ","name":"I search for \"New York Times\"","line":5,"match":{"arguments":[{"offset":14,"val":"New York Times"}],"location":"features/step_definitions/google_search_step.rb:5"},"result":{"status":"passed"}},{"keyword":"Then ","name":"I should se \"The New York Times - Breaking News, World News & Multimedia\"","line":6,"match":{"arguments":[{"offset":13,"val":"The New York Times - Breaking News, World News & Multimedia"}],"location":"features/step_definitions/google_search_step.rb:9"},"result":{"status":"passed"}}]}]}]
@@ -15,7 +15,8 @@ class FeatureFileTest < ActiveSupport::TestCase
15
15
  end
16
16
 
17
17
  test "feature should return its contexts when applicable" do
18
- assert_equal 1, @cucumber.features.last.contexts.size
18
+ feature = CucumberMonitor.new.features.where(name: 'change_my_data')
19
+ assert_equal 1, feature.contexts.size
19
20
  end
20
21
 
21
22
  end
data/test/setup.rb CHANGED
@@ -3,6 +3,7 @@ class Test::Unit::TestCase
3
3
  @cucumber = CucumberMonitor.new
4
4
  @feature_one = @cucumber.features.first
5
5
  @feature_two = @cucumber.features.last
6
+ @feature_three = @cucumber.features.where(name: 'change_my_data')
6
7
  @path = CucumberMonitor.path
7
8
  @root = CucumberMonitor::Engine.root
8
9
  copy_sample_features
@@ -17,7 +18,6 @@ class Test::Unit::TestCase
17
18
  end
18
19
 
19
20
  def copy_sample_features
20
- FileUtils.cp("#{@root}/features/administration.feature","#{@path}/features/administration.feature")
21
- FileUtils.cp("#{@root}/features/change_my_data.feature","#{@path}/features/change_my_data.feature")
21
+ FileUtils.cp_r("#{@root}/sample_files/features",@path)
22
22
  end
23
23
  end
data/test/step_test.rb CHANGED
@@ -3,34 +3,45 @@ require 'test_helper'
3
3
  class StepTest < ActiveSupport::TestCase
4
4
 
5
5
  test "step should return its siblings" do
6
- step = @feature_one.scenarios.first.steps.first
6
+ step = @feature_two.scenarios.first.steps.first
7
7
 
8
8
  siblings = [
9
- 'Given that there is an administrator with the email "admin@domain.com" and password "123456"',
10
- 'When I try to access the admin dashboard with the email "admin@domain.com" and senha "123456"',
11
- 'Then I should be at admin dashboard page',
9
+ 'Given I am at the google page',
10
+ 'When I search for "New York Times"',
11
+ 'Then I should see "The New York Times - Breaking News, World News & Multimedia"',
12
12
  ]
13
13
  assert_equal siblings, step.siblings_and_self.map(&:description)
14
14
  end
15
15
 
16
16
  test "step should get the previous step" do
17
- last_step = @feature_one.scenarios.first.steps.last
18
- previous_step = 'When I try to access the admin dashboard with the email "admin@domain.com" and senha "123456"'
17
+ last_step = @feature_two.scenarios.first.steps.last
18
+ previous_step = 'When I search for "New York Times"'
19
19
  assert_equal previous_step, last_step.previous.description
20
20
  end
21
21
 
22
22
  test "step should get the next step" do
23
- first_step = @feature_one.scenarios.first.steps.first
24
- next_step = 'When I try to access the admin dashboard with the email "admin@domain.com" and senha "123456"'
23
+ first_step = @feature_two.scenarios.first.steps.first
24
+ next_step = 'When I search for "New York Times"'
25
25
  assert_equal next_step, first_step.next.description
26
26
  end
27
27
 
28
28
  test "step should return empty array when there is no next or previous step" do
29
- first_step = @feature_one.scenarios.first.steps.first
30
- last_step = @feature_one.scenarios.first.steps.last
29
+ first_step = @feature_two.scenarios.first.steps.first
30
+ last_step = @feature_two.scenarios.first.steps.last
31
31
 
32
32
  assert_equal [], first_step.previous
33
33
  assert_equal [], last_step.next
34
34
  end
35
35
 
36
+ test "step should return the code of step definition" do
37
+ feature = @cucumber.features.where(name: 'google_search')
38
+ first_step = feature.scenarios.first.steps.first
39
+
40
+ expected_definition_lines = ['Given /^I am at the google page$/ do', 'visit "http://www.google.com"', 'end']
41
+
42
+ # expected_first_step_definition = 'google_search_step.rb:1'
43
+
44
+ assert_equal expected_definition_lines, first_step.definition.content
45
+ end
46
+
36
47
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cucumber_monitor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-27 00:00:00.000000000 Z
12
+ date: 2012-09-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -67,11 +67,13 @@ files:
67
67
  - lib/cucumber_monitor/array.rb
68
68
  - lib/cucumber_monitor/base.rb
69
69
  - lib/cucumber_monitor/context.rb
70
+ - lib/cucumber_monitor/definition.rb
70
71
  - lib/cucumber_monitor/engine.rb
71
72
  - lib/cucumber_monitor/feature_file.rb
72
73
  - lib/cucumber_monitor/feature_runner.rb
73
74
  - lib/cucumber_monitor/scenario.rb
74
75
  - lib/cucumber_monitor/step.rb
76
+ - lib/cucumber_monitor/step_definition_file.rb
75
77
  - lib/cucumber_monitor/string.rb
76
78
  - lib/cucumber_monitor/version.rb
77
79
  - lib/cucumber_monitor.rb
@@ -107,7 +109,10 @@ files:
107
109
  - test/dummy/db/test.sqlite3
108
110
  - test/dummy/features/administration.feature
109
111
  - test/dummy/features/change_my_data.feature
112
+ - test/dummy/features/google_search.feature
113
+ - test/dummy/features/step_definitions/google_search_step.rb
110
114
  - test/dummy/features/support/env.rb
115
+ - test/dummy/features/support/mechanize.rb
111
116
  - test/dummy/lib/tasks/cucumber.rake
112
117
  - test/dummy/log/development.log
113
118
  - test/dummy/log/test.log
@@ -119,13 +124,14 @@ files:
119
124
  - test/dummy/README.rdoc
120
125
  - test/dummy/script/cucumber
121
126
  - test/dummy/script/rails
127
+ - test/dummy/tmp/cucumber.out
122
128
  - test/feature_file_test.rb
123
129
  - test/integration/navigation_test.rb
124
130
  - test/scenario_test.rb
125
131
  - test/setup.rb
126
132
  - test/step_test.rb
127
133
  - test/test_helper.rb
128
- homepage: http://www.webhall.com.br
134
+ homepage: https://github.com/davidwilliam/cucumber_monitor
129
135
  licenses: []
130
136
  post_install_message:
131
137
  rdoc_options: []
@@ -179,7 +185,10 @@ test_files:
179
185
  - test/dummy/db/test.sqlite3
180
186
  - test/dummy/features/administration.feature
181
187
  - test/dummy/features/change_my_data.feature
188
+ - test/dummy/features/google_search.feature
189
+ - test/dummy/features/step_definitions/google_search_step.rb
182
190
  - test/dummy/features/support/env.rb
191
+ - test/dummy/features/support/mechanize.rb
183
192
  - test/dummy/lib/tasks/cucumber.rake
184
193
  - test/dummy/log/development.log
185
194
  - test/dummy/log/test.log
@@ -191,6 +200,7 @@ test_files:
191
200
  - test/dummy/README.rdoc
192
201
  - test/dummy/script/cucumber
193
202
  - test/dummy/script/rails
203
+ - test/dummy/tmp/cucumber.out
194
204
  - test/feature_file_test.rb
195
205
  - test/integration/navigation_test.rb
196
206
  - test/scenario_test.rb