rails_apps_testing 0.0.1
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.
- checksums.yaml +7 -0
- data/.gitignore +23 -0
- data/CHANGELOG.textile +5 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.textile +191 -0
- data/Rakefile +2 -0
- data/lib/generators/testing/configure/configure_generator.rb +34 -0
- data/lib/generators/testing/configure/templates/application.rb +11 -0
- data/lib/generators/testing/configure/templates/capybara.rb +1 -0
- data/lib/generators/testing/configure/templates/database_cleaner.rb +21 -0
- data/lib/generators/testing/configure/templates/devise.rb +3 -0
- data/lib/generators/testing/configure/templates/factory_girl.rb +3 -0
- data/lib/rails_apps_testing.rb +5 -0
- data/lib/rails_apps_testing/version.rb +3 -0
- data/rails_apps_testing.gemspec +23 -0
- metadata +87 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 2fb7540e115f41fded77bfa902e5c64fdca2ecce
|
4
|
+
data.tar.gz: 78b787c1c2a71c8b930b6f73ee89da1759b556b7
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 3e4096bd8495eed4b5b6a036152e296d0c9a2fee2d92e1a783a6784aa53eec710502b2826cb619502fab4f52743a18fcb74f199e40c3c4d8a1983cad99709e63
|
7
|
+
data.tar.gz: d15ba5272e3255e0f8d15a03a6fff0f2f124c3fdd051d010cb4254469a5dbe435c8499624307b84042f558afb9fad2b92a863f3ff298f00bbb758bad56e60fbe
|
data/.gitignore
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
*.gem
|
2
|
+
*.rbc
|
3
|
+
.bundle
|
4
|
+
.config
|
5
|
+
.yardoc
|
6
|
+
Gemfile.lock
|
7
|
+
InstalledFiles
|
8
|
+
_yardoc
|
9
|
+
coverage
|
10
|
+
doc/
|
11
|
+
lib/bundler/man
|
12
|
+
pkg
|
13
|
+
rdoc
|
14
|
+
spec/reports
|
15
|
+
test/tmp
|
16
|
+
test/version_tmp
|
17
|
+
tmp
|
18
|
+
*.bundle
|
19
|
+
*.so
|
20
|
+
*.o
|
21
|
+
*.a
|
22
|
+
mkmf.log
|
23
|
+
.DS_Store
|
data/CHANGELOG.textile
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2014 Daniel Kehoe
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.textile
ADDED
@@ -0,0 +1,191 @@
|
|
1
|
+
h1. !http://railsapps.github.io/images/rails-36x36.jpg(RailsAppsTesting Gem)! RailsAppsTesting Gem
|
2
|
+
|
3
|
+
Use this gem to set up a testing framework. The gem modifies a Rails application and configures:
|
4
|
+
|
5
|
+
* "RSpec Rails":https://github.com/rspec/rspec-rails – installs RSpec gems with support for Rails
|
6
|
+
* "Capybara":https://github.com/jnicklas/capybara – tests web pages
|
7
|
+
* "Database Cleaner":https://github.com/bmabey/database_cleaner – a clean slate for databases
|
8
|
+
* "FactoryGirl Rails":https://github.com/thoughtbot/factory_girl_rails – creates test data
|
9
|
+
* "Launchy":https://github.com/copiousfreetime/launchy – view errors in your web browser
|
10
|
+
* "Selenium Webdriver":http://docs.seleniumhq.org/projects/webdriver/ – for tests that require JavaScript
|
11
|
+
|
12
|
+
This suite of gems is popular for testing Rails applications. Typically, a developer makes several small configuration changes when setting up a test framework with these gems. The configuration changes are easy to make manually, but this gem provides a generator to make the changes, for ease of use with an automated process such as an application template.
|
13
|
+
|
14
|
+
RailsAppsTesting is a utility gem to use during development. You can remove it after setting up your test framework. It was originally written for use by the "Rails Composer":http://railsapps.github.io/rails-composer/ tool. Use Rails Composer to build any of the "RailApps example applications":http://railsapps.github.io/ for use as starter apps.
|
15
|
+
|
16
|
+
h4. !http://railsapps.github.io/images/join/join-railsapps.png(Join RailsApps)!:http://railsapps.github.io/
|
17
|
+
|
18
|
+
h4. Support the RailsApps Project
|
19
|
+
|
20
|
+
If the RailsAppsTesting gem is useful to you, please accept our invitation to "join the RailsApps project":http://railsapps.github.io/. The RailsApps project provides example applications, tutorials, and starter tools, including the RailsAppsTesting gem.
|
21
|
+
|
22
|
+
h2. Install a Testing Framework
|
23
|
+
|
24
|
+
The RailsApps project offers a tutorial:
|
25
|
+
|
26
|
+
* "RSpec Tutorial":http://railsapps.github.io/rspec.html
|
27
|
+
|
28
|
+
To install a testing framework, add the gems you need. Then use the RailsAppsTesting gem. It will set up and configure your testing framework.
|
29
|
+
|
30
|
+
Add the gems you need to your Rails application Gemfile:
|
31
|
+
|
32
|
+
<pre>
|
33
|
+
group :development do
|
34
|
+
gem 'rails_apps_testing'
|
35
|
+
end
|
36
|
+
group :development, :test do
|
37
|
+
gem 'rspec-rails'
|
38
|
+
gem 'factory_girl_rails'
|
39
|
+
end
|
40
|
+
group :test do
|
41
|
+
gem 'capybara'
|
42
|
+
gem 'database_cleaner'
|
43
|
+
gem 'launchy'
|
44
|
+
gem 'selenium-webdriver'
|
45
|
+
end
|
46
|
+
</pre>
|
47
|
+
|
48
|
+
You don't need the RailsAppsTesting gem deployed to production, so put it in the @development@ group.
|
49
|
+
|
50
|
+
If you want to use a newer unreleased version from GitHub:
|
51
|
+
|
52
|
+
<pre>
|
53
|
+
group :development do
|
54
|
+
gem 'rails_apps_testing', github: 'RailsApps/rails_apps_testing'
|
55
|
+
end
|
56
|
+
</pre>
|
57
|
+
|
58
|
+
h4. Use Bundler
|
59
|
+
|
60
|
+
Use Bundler to install the gems:
|
61
|
+
|
62
|
+
<pre>
|
63
|
+
$ bundle install
|
64
|
+
</pre>
|
65
|
+
|
66
|
+
h2. Configure RSpec and Friends
|
67
|
+
|
68
|
+
To run the generator and configure the testing framework:
|
69
|
+
|
70
|
+
<pre>
|
71
|
+
$ rails generate testing:configure rspec
|
72
|
+
</pre>
|
73
|
+
|
74
|
+
Use @--force@ if you want to overwrite existing files:
|
75
|
+
|
76
|
+
<pre>
|
77
|
+
$ rails generate testing:configure rspec --force
|
78
|
+
</pre>
|
79
|
+
|
80
|
+
h3. RSpec Configuration
|
81
|
+
|
82
|
+
The RailsAppsTesting generator will remove the legacy *test/* folder if it exists (it is not needed for RSpec).
|
83
|
+
|
84
|
+
The RailsAppsTesting generator will run @rails generate rspec:install@ to create two files and a folder:
|
85
|
+
|
86
|
+
* *.rspec*
|
87
|
+
* *spec/*
|
88
|
+
* *spec/spec_helper.rb*
|
89
|
+
|
90
|
+
Then the RailsAppsTesting generator will configure RSpec.
|
91
|
+
|
92
|
+
It will modify the file *.rspec* to add:
|
93
|
+
|
94
|
+
<pre>
|
95
|
+
--format documentation
|
96
|
+
</pre>
|
97
|
+
|
98
|
+
It will modify the file *config/application.rb* to suppress creation of stub files that many developers don't use:
|
99
|
+
|
100
|
+
<pre>
|
101
|
+
config.generators do |g|
|
102
|
+
g.test_framework :rspec,
|
103
|
+
fixtures: true,
|
104
|
+
view_specs: false,
|
105
|
+
helper_specs: false,
|
106
|
+
routing_specs: false,
|
107
|
+
controller_specs: false,
|
108
|
+
request_specs: false
|
109
|
+
g.fixture_replacement :factory_girl, dir: "spec/factories"
|
110
|
+
end
|
111
|
+
</pre>
|
112
|
+
|
113
|
+
h3. Capybara and Launchy Configuration
|
114
|
+
|
115
|
+
The generator will set up Capybara and Launchy to display CSS and JavaScript with a file *spec/support/capybara.rb*:
|
116
|
+
|
117
|
+
<pre>
|
118
|
+
Capybara.asset_host = 'http://localhost:3000'
|
119
|
+
</pre>
|
120
|
+
|
121
|
+
h3. Database Cleaner Configuration
|
122
|
+
|
123
|
+
The generator will set up Database Cleaner to test JavaScript with a file *spec/support/database_cleaner.rb*:
|
124
|
+
|
125
|
+
<pre>
|
126
|
+
RSpec.configure do |config|
|
127
|
+
config.before(:suite) do
|
128
|
+
DatabaseCleaner.clean_with(:truncation)
|
129
|
+
end
|
130
|
+
|
131
|
+
config.before(:each) do
|
132
|
+
DatabaseCleaner.strategy = :transaction
|
133
|
+
end
|
134
|
+
|
135
|
+
config.before(:each, :js => true) do
|
136
|
+
DatabaseCleaner.strategy = :truncation
|
137
|
+
end
|
138
|
+
|
139
|
+
config.before(:each) do
|
140
|
+
DatabaseCleaner.start
|
141
|
+
end
|
142
|
+
|
143
|
+
config.append_after(:each) do
|
144
|
+
DatabaseCleaner.clean
|
145
|
+
end
|
146
|
+
end
|
147
|
+
</pre>
|
148
|
+
|
149
|
+
It will also modify *spec/spec_helper.rb*:
|
150
|
+
|
151
|
+
<pre>
|
152
|
+
config.use_transactional_fixtures = false
|
153
|
+
</pre>
|
154
|
+
|
155
|
+
h3. FactoryGirl Configuration
|
156
|
+
|
157
|
+
The generator will set up FactoryGirl shortcuts with a file *spec/support/factory_girl.rb*:
|
158
|
+
|
159
|
+
<pre>
|
160
|
+
RSpec.configure do |config|
|
161
|
+
config.include FactoryGirl::Syntax::Methods
|
162
|
+
end
|
163
|
+
</pre>
|
164
|
+
|
165
|
+
h3. Devise Configuration
|
166
|
+
|
167
|
+
If Devise in installed in your application, the generator will add a file *spec/support/devise.rb*:
|
168
|
+
|
169
|
+
<pre>
|
170
|
+
RSpec.configure do |config|
|
171
|
+
config.include Devise::TestHelpers, :type => :controller
|
172
|
+
end
|
173
|
+
</pre>
|
174
|
+
|
175
|
+
h2. Issues
|
176
|
+
|
177
|
+
Any issues? Please create an "issue":http://github.com/RailsApps/rails_apps_testing/issues on GitHub. Reporting issues (and patching!) helps everyone.
|
178
|
+
|
179
|
+
h2. Credits
|
180
|
+
|
181
|
+
Daniel Kehoe maintains this gem as part of the "RailsApps project":http://railsapps.github.io/.
|
182
|
+
|
183
|
+
Please see the "CHANGELOG":https://github.com/RailsApps/rails_apps_testing/blob/master/CHANGELOG.textile for a list of contributors.
|
184
|
+
|
185
|
+
Is the gem useful to you? Follow the project on Twitter: "@rails_apps":http://twitter.com/rails_apps. I'd love to know you were helped out by the gem.
|
186
|
+
|
187
|
+
h2. MIT License
|
188
|
+
|
189
|
+
"MIT License":http://www.opensource.org/licenses/mit-license
|
190
|
+
|
191
|
+
Copyright © 2014 Daniel Kehoe
|
data/Rakefile
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
|
3
|
+
module Testing
|
4
|
+
module Generators
|
5
|
+
class ConfigureGenerator < ::Rails::Generators::Base
|
6
|
+
source_root File.expand_path("../templates", __FILE__)
|
7
|
+
argument :framework_name, :type => :string, :default => "rspec"
|
8
|
+
|
9
|
+
desc "Sets up a testing framework."
|
10
|
+
|
11
|
+
attr_reader :app_name
|
12
|
+
|
13
|
+
def configure_framework
|
14
|
+
case framework_name
|
15
|
+
when 'rspec'
|
16
|
+
run 'rm -rf test/' # Removing test folder (not needed for RSpec)
|
17
|
+
generate 'rspec:install'
|
18
|
+
inject_into_file '.rspec', "--format documentation\n", :after => "--color\n"
|
19
|
+
tweaks = File.read(find_in_source_paths('application.rb'))
|
20
|
+
inject_into_file 'config/application.rb', tweaks + "\n", :after => "Rails::Application\n"
|
21
|
+
gsub_file 'spec/spec_helper.rb', /check_pending/, 'maintain_test_schema'
|
22
|
+
copy_file 'capybara.rb', 'spec/support/capybara.rb'
|
23
|
+
gsub_file 'spec/spec_helper.rb', /config.use_transactional_fixtures = true/, "config.use_transactional_fixtures = false"
|
24
|
+
copy_file 'database_cleaner.rb', 'spec/support/database_cleaner.rb'
|
25
|
+
copy_file 'factory_girl.rb', 'spec/support/factory_girl.rb'
|
26
|
+
if File.exists?('config/initializers/devise.rb')
|
27
|
+
copy_file 'devise.rb', 'spec/support/devise.rb'
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
Capybara.asset_host = 'http://localhost:3000'
|
@@ -0,0 +1,21 @@
|
|
1
|
+
RSpec.configure do |config|
|
2
|
+
config.before(:suite) do
|
3
|
+
DatabaseCleaner.clean_with(:truncation)
|
4
|
+
end
|
5
|
+
|
6
|
+
config.before(:each) do
|
7
|
+
DatabaseCleaner.strategy = :transaction
|
8
|
+
end
|
9
|
+
|
10
|
+
config.before(:each, :js => true) do
|
11
|
+
DatabaseCleaner.strategy = :truncation
|
12
|
+
end
|
13
|
+
|
14
|
+
config.before(:each) do
|
15
|
+
DatabaseCleaner.start
|
16
|
+
end
|
17
|
+
|
18
|
+
config.append_after(:each) do
|
19
|
+
DatabaseCleaner.clean
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'rails_apps_testing/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "rails_apps_testing"
|
8
|
+
spec.version = RailsAppsTesting::VERSION
|
9
|
+
spec.authors = ["Daniel Kehoe"]
|
10
|
+
spec.email = ["daniel@danielkehoe.com"]
|
11
|
+
spec.summary = %q{Sets up a testing framework for a Rails application.}
|
12
|
+
spec.description = %q{Configures a suite of gems used for testing Rails applications.}
|
13
|
+
spec.homepage = ""
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_development_dependency "bundler", "~> 1.6"
|
22
|
+
spec.add_development_dependency "rake"
|
23
|
+
end
|
metadata
ADDED
@@ -0,0 +1,87 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rails_apps_testing
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Daniel Kehoe
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-04-26 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.6'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.6'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
description: Configures a suite of gems used for testing Rails applications.
|
42
|
+
email:
|
43
|
+
- daniel@danielkehoe.com
|
44
|
+
executables: []
|
45
|
+
extensions: []
|
46
|
+
extra_rdoc_files: []
|
47
|
+
files:
|
48
|
+
- ".gitignore"
|
49
|
+
- CHANGELOG.textile
|
50
|
+
- Gemfile
|
51
|
+
- LICENSE.txt
|
52
|
+
- README.textile
|
53
|
+
- Rakefile
|
54
|
+
- lib/generators/testing/configure/configure_generator.rb
|
55
|
+
- lib/generators/testing/configure/templates/application.rb
|
56
|
+
- lib/generators/testing/configure/templates/capybara.rb
|
57
|
+
- lib/generators/testing/configure/templates/database_cleaner.rb
|
58
|
+
- lib/generators/testing/configure/templates/devise.rb
|
59
|
+
- lib/generators/testing/configure/templates/factory_girl.rb
|
60
|
+
- lib/rails_apps_testing.rb
|
61
|
+
- lib/rails_apps_testing/version.rb
|
62
|
+
- rails_apps_testing.gemspec
|
63
|
+
homepage: ''
|
64
|
+
licenses:
|
65
|
+
- MIT
|
66
|
+
metadata: {}
|
67
|
+
post_install_message:
|
68
|
+
rdoc_options: []
|
69
|
+
require_paths:
|
70
|
+
- lib
|
71
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
77
|
+
requirements:
|
78
|
+
- - ">="
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: '0'
|
81
|
+
requirements: []
|
82
|
+
rubyforge_project:
|
83
|
+
rubygems_version: 2.2.2
|
84
|
+
signing_key:
|
85
|
+
specification_version: 4
|
86
|
+
summary: Sets up a testing framework for a Rails application.
|
87
|
+
test_files: []
|