2013-07-23 3 views
2

Je suis en train de configurer l'intégration de Calabash iOS utilisant rspec (& pas le concombre) en suivant les étapes mentionnées dans http://devblog.snap-interactive.com/post/45933948225/mobile-automation-of-ios-native-apps-with-calabash-ios#.Ue6PORz5BhF mais incapable de continuer. J'ai énuméré en détail les étapes que j'ai suivies et les erreurs de débogage aussi. S'il vous plaît partager un peu de lumière comme ce qui ne va pas .. Je suis nouveau au rubis et à la calebasse aussi.Problèmes de mise en œuvre Calabash-ios avec rspec

Étapes: j'ai créé XCodeproject et configuré le projet suivant les étapes mentionnées dans https://github.com/calabash/calabash-ios, dans le terminal cd au répertoire de projet et INSTALLÉ joyau rspec, a fait rspec -init pour créer le spec_helper

Je suis en utilisant Rubymine.

La structure de l'arbre qui existe comme:

TestProject

  • calabash.framework
  • caractéristiques
    • step_definitions
    • soutien
      • 01_launch.rb -I déplacé ce fichier sous le répertoire lib et renommé launch.rb que je référencé dans le spec_helper.rb
      • ..autres fichiers
  • lib
    • launch.rb
    • MySpec.rb
  • spec
    • MySpec_spec.rb
    • spec_helper.rb
  • autres dossiers du projet ... ..

Est-il un format spécifique qui devrait être suivi tout en travaillant avec rspec que je J'ai manqué ici? (comme nous avons pour le concombre dossier comporte, step_definitions, etc ..)

Je posterai le contenu de mes fichiers:

launch.rb

######################################## 
#          # 
#  Important Note     # 
#          # 
# When running calabash-ios tests at # 
# www.xamarin.com/test-cloud   # 
# this file will be overwritten by # 
# a file which automates    # 
# app launch on devices.    # 
#          # 
# Don't rely on this file being  # 
# present when running at   # 
# Xamarin Test Cloud     # 
#          # 
######################################## 

require 'calabash-cucumber/launcher' 

APP_BUNDLE_PATH = "~/Library/Developer/Xcode/DerivedData/MyApp-dftlalczpovmeddcybgllunvwpoe/Build/Products/Release-iphonesimulator/MyApp.app" 


Before do |scenario| 
    @calabash_launcher = Calabash::Cucumber::Launcher.new 
    unless @calabash_launcher.calabash_no_launch? 
    @calabash_launcher.relaunch 
    @calabash_launcher.calabash_notify(self) 
    end 
end 

After do |scenario| 
    unless @calabash_launcher.calabash_no_stop? 
    calabash_exit 
    @calabash_launcher.stop 
    end 
end 

at_exit do 
    launcher = Calabash::Cucumber::Launcher.new 
    if launcher.simulator_target? 
    Calabash::Cucumber::SimulatorHelper.stop unless launcher.calabash_no_stop? 
    end 
end 

> Est-ce exact ajouter APP_BUNDLE_PATH comme ça?

> Ai-je besoin d'ajouter APP_BUNDLE_PATH ici si j'ai le code source de l'application ou seulement quand j'ai le .app »

Sur Débogage launch.rb, je reçois le Les erreurs suivantes, quelqu'un peut-il s'il vous plaît aider à résoudre ce:

/Users/qateam/.rbenv/versions/2.0.0-p247/bin/ruby -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) /Users/qateam/Desktop/library_project/TestProject/lib/launch.rb 
/Users/qateam/Desktop/library_project/TestProject/lib/launch.rb:30:in `<top (required)>': undefined method `Before' for main:Object (NoMethodError) 
    from -e:1:in `load' 
    from -e:1:in `<main>' 

Process finished with exit code 1 

spec_helper.rb

require_relative '../lib/launch' 
require ‘rspec’ 

require ‘rubygems’ 
require 'calabash-cucumber/core' 
require 'calabash-cucumber/tests_helpers' 
require 'calabash-cucumber/keyboard_helpers' 
require 'calabash-cucumber/wait_helpers' 
require 'calabash-cucumber/operations' 
require 'calabash-cucumber/version' 
require 'calabash-cucumber/location' 
require 'calabash-cucumber/ibase' 
include Calabash::Cucumber::Core 
include Calabash::Cucumber::WaitHelpers 
include Calabash::Cucumber::TestsHelpers 
include Calabash::Cucumber::Operations 

# This file was generated by the `rspec --init` command. Conventionally, all 
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`. 
# Require this file using `require "spec_helper"` to ensure that it is only 
# loaded once. 
# 
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration 
RSpec.configure do |config| 
    config.treat_symbols_as_metadata_keys_with_true_values = true 
    config.run_all_when_everything_filtered = true 
    config.filter_run :focus 

    # Run specs in random order to surface order dependencies. If you find an 
    # order dependency and want to debug it, you can fix the order by providing 
    # the seed, which is printed after each run. 
    #  --seed 1234 
    config.order = 'random' 
end 

S'il vous plaît noter:

la ligne "require « rspec »" ligne indique "Aucun fichier à charger", pourquoi? Je l'ai fait installer bijou rspec dans le répertoire du projet

Sur Debugging spec_helper.rb, je reçois les erreurs suivantes:

/Users/qateam/.rbenv/versions/2.0.0-p247/bin/ruby -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) /Users/qateam/Desktop/library_project/TestProject/spec/spec_helper.rb 
/Users/qateam/Desktop/library_project/TestProject/lib/launch.rb:30:in `<top (required)>': undefined method `Before' for main:Object (NoMethodError) 
    from /Users/qateam/Desktop/library_project/TestProject/spec/spec_helper.rb:1:in `require_relative' 
    from /Users/qateam/Desktop/library_project/TestProject/spec/spec_helper.rb:1:in `<top (required)>' 
    from -e:1:in `load' 
    from -e:1:in `<main>' 

Process finished with exit code 1 

S'il vous plaît guide sur ce qui va mal.

MySpec_spec.rb

require ‘spec_helper’ 
. 
. 
. 
. 

à faire "spec rspec" dans les résultats du terminal en suivant:

/Utilisateurs/qateam/Desktop/library_project/TestProject/spec/launch.rb: 17: in <top (required)>': undefined method Avant 'pour principal: Object (NoMethodError) from /Users/qateam/Desktop/library_project/TestProject/spec/spec_helper.rb:1:in require_relative' from /Users/qateam/Desktop/library_project/TestProject/spec/spec_helper.rb:1:in ' à partir de /Users/qateam/.rbenv/versions/2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:51:in require' from /Users/qateam/.rbenv/versions/2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:51:in require' from/Users/qateam /Desktop/library_project/TestProject/spec/PlayWithShopwise_spec.rb:1:in <top (required)>' from /Users/qateam/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rspec-core-2.14.4/lib/rspec/core/configuration.rb:896:in load ' à partir de /Users/qateam/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rspec -core-2.14.4/lib/rspec/core/configuration.rb: 896: dans block in load_spec_files' from /Users/qateam/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rspec-core-2.14.4/lib/rspec/core/configuration.rb:896:in chaque ' de /Users/qateam/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0 /gems/rspec-core-2.14.4/lib/rspec/core/configuration.rb:896:in load_spec_files' from /Users/qateam/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rspec-core-2.14.4/lib/rspec/core/command_line.rb:22:in exécutez ' depuis /Users/qateam/.rbenv/versions/2.0.0-p247/lib/ruby/gems /2.0.0/gems/rspec-core-2.14.4/lib/rspec/core/runner.rb:80:in run' from /Users/qateam/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/rspec-core-2.14.4/lib/rspec/core/runner.rb:17:in bloc en autorun '

Appréciez toutes les entrées sur ce ..

Si vous avez un exemple de travail de calabash-rspec, ou toute documentation/tutoriels, s'il vous plaît partager.

Merci,

+0

Salut pouvez-vous essayer ce changement. re nommez votre fichier step comme yourPrefix_steps.rb et réessayez. "filename .._ steps.rb" –

+0

Bonjour Chathura, merci d'avoir répondu. Je n'utilise pas Cucumber (& donc pas de dossier step_definitions et donc de fichiers _steps.rb dans mon projet). J'essaie mes mains sur rspec. Je ne sais pas pourquoi je reçois "launch.rb: 30: in '': méthode non définie' Before 'pour main: Object (NoMethodError) "cette erreur sur le débogage .. – user2525211

Répondre

0

Je sais que c'est un poste ancien, mais nous avons utilise rspec pour l'unité et l'intégration de tester les gemmes Calabash iOS et boucle exécutée. Il est 100% possible d'utiliser rspec lorsque votre test est en cours d'exécution, mais vous devrez configurer le coureur vous-même. Mon meilleur conseil est d'utiliser un bloc before(:all) pour lancer l'application.