2012-01-12 12 views
0

私はSatchmoショッピングカートソフトウェアを使用してDjangoプロジェクトに取り組んでいます。私はこのプロジェクトのためにかなり複雑なカスタムコードを使用しなければならないので、すべてのDjangoとSatchmoテストをパスしたいと思います。Satchmo単体テストは単独で実行されます

ただし、テストの1つは、正確にはcustom.ShopTest.test_custom_productproduct/modules/custom/tests.pyとしています。このテストは孤立して動作します(つまり./manage.py test custom.ShopTest)。すべてのテストを一緒に実行すると(./manage.py test)実行されません。

このテストでは、Djangoテストクライアントを使用してホームページを開き、いくつかのテキストがページに含まれているかどうかを確認します。本番データベースに同じフィクスチャをロードすると、これらのテキストもページに表示されます。

また、テストが開始されると、ページにタイトルが表示される製品もテストデータベースに存在するため、フィクスチャが正しくロードされます。

他のSatchmoアプリケーションの中には何らかのテストが中断していると思いますが、私はいつもDjangoが可能な限りテストをできるだけ独立して実行すると仮定しました。

EDIT:

失敗テストの出力は次のとおりです。

====================================================================== 
FAIL: test_custom_product (product.modules.custom.tests.ShopTest) 
---------------------------------------------------------------------- 
Traceback (most recent call last): 
    File "/data/Projects/satchmo/satchmo/apps/product/modules/custom/tests.py", line 43, in test_custom_product 
    self.assertContains(response, "Computer", count=1) 
    File "/data/PythonEnvironments/mywebsite.nl/local/lib/python2.7/site-packages/django/test/testcases.py", line 427, in assertContains 
    " (expected %d)" % (real_count, text, count)) 
AssertionError: Found 0 instances of 'Computer' in response (expected 1) 

---------------------------------------------------------------------- 

EDIT 2: 私はちょうど私が要求されたビュー機能にブレークポイントを置くと、テストは常に発生しません発見し、デバッガがブレークポイントで停止すると、しばらく待ってから続行してください。たぶんこれはスレッディングと関係がありますか?

+0

失敗したテストの出力が役立ちます。 – AdamKG

+0

出力を追加しました。 – muksie

答えて

0

最終的に解決策を自分で見つけました。それはキャッシングで何かをしなければならなかった。ダミーキャッシュを使用するとこの問題は解決しましたが、別のユニットテストが失敗します(testCacheGetOKからkeyedcache)。ただし、テスト中にキャッシュタイムアウトを1秒に設定すると、問題が解決しました。

1

Satchmoで固定:簡単なリセット用のサポートが2011年5月にliveettingsに追加されました。現在、私は最新のパッケージで失敗したテストは見つかりませんでした。テストケースクラスのShopClassは、長い間変更されていません。

関連する問題