0

私はDjango-nose 1.4とnose 1.3.6でDjango 1.7を使用しています。

ドキュメントによると、属性を使用して実行するテストを選択できるはずです。次のようなテスト セットがあります。

from nose.plugins.attrib import attr
from django_webtest import TransactionWebTest

@attr(isolation="menu")
class MenuTestCase(TransactionWebTest):

    def test_home(self):
        pass

テストを実行しようとすると:

./manage.py test -a isolation

鼻は実行からすべてのテストを排除します。つまり、テストは実行されません。を使用しない場合-a、すべてのテストが正常に実行されることに注意してください。私も試しました:

  • -a=isolation
  • -a isolation=menu
  • -a=isolation=menu
  • -a '!isolation'

isolation属性は 1 つのクラスでのみ使用されますが、何も選択されないため、最後の属性はテスト スイートのほぼすべてを選択する必要があります。属性システム全体がどのように機能するかを理解していないだけだと思い始めています。

4

1 に答える 1

2

何が問題を引き起こしているのか私には不明です。これはおそらく、Django がコマンドライン引数を django-nose に渡し、その後、django-nose がそれを nos に渡す方法に関係しています。とにかく、長い形式のコマンド ライン引数を使用すると、問題が解決します。

$ ./manage.py test --attr=isolation

同様に:

  • --attr=isolation=menu
  • --attr='!isolation'(シェル形式の解釈を防ぐための一重引用符付き!)
  • --eval-attr=isolation
  • --eval-attr='isolation=="menu"'(一重引用符は、シェルが二重引用符を削除するのを防ぎます)
  • 等...
于 2015-05-15T15:16:08.577 に答える