Ich versuche, mein Rails-Angular Projekt zur Einrichtung JS-Tests zur Verfügung zu stellen. Ich habe fast alles ausprobiert, was ich in Google gefunden haben:Wie Setup-Rails-Angular Projekt JS zu testen?
- Karma (ehemals Testacular)
- Jasmine + Jasmine-headless-WebKit
- Jasminerice
- einige andere tuts
aber ich konnte nicht mit allen von ihnen. Ich bin für Art und Weise suchen Einheit und e2e-Tests in den meisten schmerzlos zu laufen (es in Wache oder Karma sein kann, ist mir egal, aber es muss es automatisch im Hintergrund ausgeführt werden).
Hat jemand von euch ein paar schönen Artikeln mit sehr schönen Beispiel, wie dies zu erreichen? In meiner Forschung habe ich this, finde aber IMHO ist es beispielsweise, wie dies nicht zu tun.
Meine eigentliche Gemfile
:
source 'https://rubygems.org'
# Use Ruby 1.9.3 instead default Heroku's 1.9.2
# for development I suggest https://gist.github.com/1688857
ruby '1.9.3'
gem 'rails', '3.2.12'
# Use PostgreSQL, which is quite awesome, fast and easy
gem 'pg'
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'bootstrap-sass', '~> 2.3.1'
# I heard that you like Compass
gem 'compass'
# Angular.js
gem 'angularjs-rails'
gem 'angularjs-rails-resource'
gem 'angular-ui-rails'
# Assets should be minified before production
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
# Serve static pages like a boss
gem 'high_voltage'
# Some user management will be nice
gem 'devise' # User management
# gem 'cancan' # And they privileges
# To use Jbuilder templates for JSON
gem 'jbuilder'
# Be fast and deadly as Puma
#gem 'puma'
# We need also some administration panel, don't we?
gem 'rails_admin'
# Some helpers
gem 'andand'
group :development do
# IRb is ugly. Use Pry for the God's sake
gem 'pry-rails'
# Deploy with Capistrano
# gem 'capistrano'
# or Vlad the Deployer
# gem 'vlad'
# Why bother yourself with rerunning tests? Use Guard
gem 'guard'
gem 'guard-rspec'
gem 'guard-spork'
gem 'guard-livereload'
gem 'guard-jasmine'
gem 'rb-fsevent', require: false
gem 'rb-inotify', require: false
# Who like ugly error pages? We don't.
gem 'better_errors'
gem 'binding_of_caller'
# Prettier documentation
gem 'yard'
end
group :development, :test do
# Use RSpec for testing
gem 'rspec-rails', '~> 2.12.0'
# Test JS using Jasmine
gem 'jasmine'
gem 'jasmine-headless-webkit'
# Some DB table generator
gem 'factory_girl_rails', '~> 4.1.0'
# And fake data generator
gem 'ffaker'
end
group :test do
# Some Gherkins will be also good (to vodka of course)
gem 'turnip', '~> 1.1.0'
# Aww, an of course some web browser will be also apprised
gem 'capybara', '~> 2.0.1'
# Clean DB after tests
gem 'database_cleaner'
# Some nice matchers
gem 'shoulda-matchers'
# Extend your mocks
gem 'bourne', '~> 1.2.1'
# Coverage reports will be nice
gem 'simplecov', require: false
end
PS: Es wäre schön, wenn ich Berichterstattung Berichte auf einfache Weise erstellen können.
"aber es muss es automatisch im Hintergrund laufen lassen" - wir erstellten Test-Runner, die für unser Angular-Projekt "Grunt" abliefen und diese erstellten Coverage-Berichte und xUnit-Ausgaben für CI (wie Jenkins); Es ist also wichtig, dass Sie diese Tests von einer 'Gemfile' aus ausführen oder können Sie' nodejs' in die Mischung werfen? –
Es wird nett sein, es in 'Gemfile' zu haben, um das mit Guard zu integrieren, aber ich bin dazu nicht gezwungen. Vielleicht ist es noch besser, wenn ich Frontend-Tests von Backend-Tests trennen werde. Also Grunt/Karma Option ist auch nett. Aber ich möchte auch alle Tests im 'spec /' Verzeichnis haben (wenn es möglich ist). – Hauleth
Ich versuche dieses Wochenende https://github.com/modeset/teaspoon, werde Sie wissen lassen, wie es geht. – darethas