Question

Je veux passer une application existante rails de rspec à minitest en commençant par les modèles. Par conséquent, je créé un test dossier. A l'intérieur, j'ai créé un fichier nommé minitest_helper.rb avec le contenu suivant:

require "minitest/autorun"

ENV["RAILS_ENV"] = "test"

et le dossier contenant models forum_spec.rb:

require "minitest_helper"

describe "one is really one" do
  before do
    @one = 1
  end

  it "must be one" do
    @one.must_equal 1
  end
end

Maintenant, je peux courir ruby -Itest test/models/forum_spec.rb avec le résultat suivant:

Loaded suite test/models/forum_spec
Started
.
Finished in 0.000553 seconds.

1 tests, 1 assertions, 0 failures, 0 errors, 0 skips

Test run options: --seed 12523

C'est agréable. Mais maintenant, je veux l'environnement à charger et ajouter la ligne suivante à minitest_helper.rb (copié à partir du fichier équivalent de rspec):

require File.expand_path("../../config/environment", __FILE__)

Maintenant, je cours à nouveau avec le résultat suivant:

Loaded suite test/models/forum_spec
Started

Finished in 0.001257 seconds.

0 tests, 0 assertions, 0 failures, 0 errors, 0 skips

Test run options: --seed 57545

Les tests et assertions sont partis. Quelle pourrait être la raison?

Infos système:

  • rubis 1.9.2p180 (2011-02-18 révision 30909) [x86_64-darwin10.8.0]
  • Rails 3.1.0.rc4
Était-ce utile?

La solution

Puisque vous passez l'application de rspec, vous avez très probablement petit bijou rspec dans un environnement de test spécifié dans Gemfile, quelque chose comme:

group :test do
  gem 'rspec'
end

Lorsque vous chargez l'environnement « test » avec ENV["RAILS_ENV"] = "test", vous chargez le rspec, qui définit sa propre méthode de describe et remplace celle définie par minitest.

Alors il y a 2 solutions ici: 1. Retirer gemme rspec de l'environnement de test 2. Si vous voulez toujours exécuter rspecs lors du passage à minitest, vous pouvez quitter l'environnement « test » seul et définir un autre environnement de test spécifique pour minitest. Appelons-le minitest - copier la config / environnement / test.rb à config / environnement / minitest.rb, définir la base de données pour l'environnement minitest et mise à jour minitest_helper à RAILS_ENV ensemble à 'minitest':

$ cp config/environments/test.rb config/environments/minitest.rb

(une partie de) config/database.yml:

minitest:
  adapter: sqlite3
  database: db/test.sqlite3
  pool: 5
  timeout: 5000

test/minitest_helper.rb:

ENV["RAILS_ENV"] = "minitest"
require File.expand_path("../../config/environment", __FILE__)
require "minitest/autorun"
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top