不能让鼻子尊重我在测试中设置的属性

2024-10-01 05:00:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用django1.7和Django nose 1.4和nose 1.3.6。在

根据documentation,我应该能够使用属性选择要运行的测试。我有一个这样的测试集:

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

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

    def test_home(self):
        pass

当我尝试使用以下内容运行测试时:

^{pr2}$

鼻子从运行中排除了所有的测试。换句话说,它不运行任何测试。请注意,当我不使用-a时,所有测试都运行良好。我也试过:

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

最后一个应该选择我几乎所有的测试套件,因为isolation属性只在一个类上使用,但它没有选择任何东西!我开始觉得我不明白整个属性系统是如何工作的。在


Tags: djangofromimport属性documentationpluginsnoseclass
1条回答
网友
1楼 · 发布于 2024-10-01 05:00:01

我不清楚是什么导致了这个问题。这可能与Django如何将命令行参数传递给Django nose有关,然后由Django nose传递给nose。无论如何,使用长形式的命令行参数可以解决问题:

$ ./manage.py test  attr=isolation

同样:

  • attr=isolation=menu
  • attr='!isolation'(用单引号来防止shell形式解释!
  • eval-attr=isolation
  • eval-attr='isolation=="menu"'(单引号阻止shell删除双引号)
  • 等等。。。在

相关问题 更多 >