Witam.
Moja nieciekawa sytuacja wygląda tak:
Istnieje sobie projek, który zakłada w zależności od klienta , używanie różnych componentów/enginów czy jak tam kto ma ochotę nazwać.
Fajno by bylo gdyby enginy te byly otestowane( nawet jeżeli późno, to lepiej teraz niż wcale). Posługując się więc tym co znalazłem , postarałem się skonfigurować TestUnita w miarę moich skromnych możliwości ( doświadczanie mam znikome w kwesti TestUnita ponieważ zakochałem się w rspecu od pierwszego wejrzenia). Ale tutoriali na temat testowania enginów w test unicie nie brakuje, także teoretycznie poszło mi to szybko.
Do momentu kiedy to się nie okazało że w momencie w którym z jednego z enginów odpalam sobię test :
[code]require ‘test_helper’
class SlotTest < ActiveSupport::TestCase
test “if i can create a slot” do
a = Slot.new(“res”, “mynunit”, “another”, “another” )
puts a.inspect
assert a.valid?, false
end
end[/code]
Tak wygląda mój test_helper
[code]ENV[“RAILS_ENV”] = “test”
require File.expand_path("…/dummy/config/environment.rb", FILE)
require “rails/test_help”
Rails.backtrace_cleaner.remove_silencers!
Load support files
Dir["#{File.dirname(FILE)}/support/**/*.rb"].each { |f|[/code]
po odpaleniu mojego testu otrzymuje taki komunikat:
NameError: uninitialized constant SlotTest::Slot
Doszedłem do tego , ze Rails.root zwraca mi scieżkę do dummy aplikacji. Więc w test_helperze zrequirowałem wszystkie modele z mojego enginu w zasadzie, wiedząc , że za chwile dostane kolejny error i skończą mi się “genialne i schludne” pomysły.
W oczekiwaniu na ten moment pojawia się pytanie: czy ktoś podpowie mi jakieś lepsze/schludniejsze rozwiązanie?
A może jedynym rozwiązaniem jest wyjęcie tych enginów poza projekt i testowanie ich jako oddzielne projekty?
bo na chwile obecną struktura katalogów wygląda tak że w katalogu projektu mam coś w stylu
–app
–moje_enginy
----przykladowyengin
------test
--------dummy
--------mojetesty
–config
–etcetc