0

私のようにファクトリーガールを使うのが初めての人のために、ファクトリーガールについて見つけた簡単なことを投稿したかっただけです。このソリューションのユースケースは限られている可能性がありますが、投稿する価値があります。

プロジェクトの1つでコントローラーに対してrspecを実行していましたが、何らかの理由で、一部のテストでは実行されませんでした。それらのすべてではなく、一部だけです。そのテストファイルのすべてを削除して実行しようとしましたが、0個の例が正常に検出されたため、ファイルが読み取られていたことがわかります。

4

1 に答える 1

0

解決策は単純でした。テスト環境でRailsコンソールを実行し、サンドボックス環境を実行しました(これは、「rails c test」で開始し、サンドボックスモードの-sフラグを追加できます)。Factory Girlにサンドボックス環境に変更を加えさせる場合、サンドボックスセッションを強制終了する前にアプリ内の他の場所でFactory Girlを実行すると、サンドボックスセッションがロックされます。

以前は実行していて、ctrl + zを使用して停止したため、私にとってはバックグラウンドで実行されていました。解決策は、次を使用してRailsコンソールプロセスを強制終了することです。

ps aux | grep rails

とpid(例:1234)

sudo kill -9 1234

Factory Girlを使用しているかどうかに関係なく、同様の問題が発生する可能性があり、サンドボックスに変更を加えるとさらに問題になると思いますが、この問題です。

編集:これはFactoryGirlの問題のみであることを確認しました-RailsサンドボックスがFactory Girlの変更で実行されている場合でも、Railsコンソールで他の方法でエントリを作成しても問題は発生しません。基本的に、この問題は、ファクトリーガールを1つのレールcテストサンドボックスで実行してから、私の知る限り、ファクトリーガールを他の場所で実行してみた場合にのみ発生します。

于 2013-01-14T22:00:25.623 に答える