So Rails 3.1 è dotato di un generatore poco conosciuto "rails g plugin new", che offre uno scheletro adatto per un plugin gemma rails. [Http://guides.rubyonrails.org/plugins.html#or-generate-a-gemified-plugin]Rails 3.1 plugin gem, fittizio test app, rspec
Una delle cose utili che fa, è impostare le cose convenientemente per il test con Test :: Unit. Offre un'app di base fittizia per Rails che i test possono eseguire nel contesto di, per testare il comportamento del motore che funziona solo nella copia di un'app Rails. (lo inserisce in ./test/dummy). Ma i tuoi test sono ancora in my_gem/test, i test non si trovano nell'app fittizia. E my_gem/test/test_helper.rb è lì, scritto in modo tale che i test vengano eseguiti nel contesto dell'applicazione fittizia, avviata su ../dummy/config/environment.
Descrivo questo perché penso che molte persone non sappiano di questo nuovo generatore, il che mette le cose così bene.
Ma la mia domanda è, qualcuno ha capito come farlo con rspec invece? Ho provato a seguire gli stessi principi del fai-da-te per impostare le cose in questo modo per rspec in una gemma di plugin per rotaie, ma sto correndo in vari roadblocks confusi, e spero che qualcun altro l'abbia già capito (o sarebbe interessato a capirlo fuori per il resto di noi, heh).
Per me, la riga: 'richiede File.expand_path (" ../../ config/environment ", __FILE __)' si trovava a 'spec/rails_helper.rb' invece di 'spec/spec_helper.rb'. Questo è dovuto a un cambiamento in Rspec? – J3RN
Se manterrai la cartella fittizia all'interno di spec/allora rspec troverà i tuoi file spec due volte. La prima volta per gemma, la seconda volta per l'app per rails, dato che il pattering corrisponderà a tutti i file spec, per quanto riguarda se sono sotto symlink o meno. [--exclude-pattern] (https://relishapp.com/rspec/rspec-core/v/3-3/docs/configuration/exclude-pattern) sembra funzionare solo insieme a --pattern. 'config.pattern << ',! Spec/dummy'' e allo stesso modo sembra non funzionare L'unica soluzione che sembra risolvere questo caso è di avere una cartella fittizia al di fuori della cartella spec – Max
Il link al tumblr l'articolo è in realtà rotto ... @ Nathan-Amick l'hai caricato da qualche altra parte? – opsidao