如何更改 django-behave 测试运行程序的测试文件发现模式?

How can I change the django-behave test runner's test file discovery pattern?

我有一个具有行为特性和单元测试的 Django 项目。 unittest 测试的组织方式如下:

theproject/
    theapp/
        tests/
            tests_one.py
            tests_other.py
            ...

不得不在 tests 目录中已经明确标识的测试文件加上 "tests_".

前缀是令人恼火的

如果我重命名所有没有 "tests_" 的测试文件并将我的测试 运行ner 更改为

TEST_RUNNER = 'django.test.runner.DiscoverRunner'

在settings.py中做

python manage.py test -p '*.py'

我所有的单元测试 运行,但不是我的行为特征。

当我有

TEST_RUNNER = 'django_behave.runner.DjangoBehaveTestSuiteRunner'

在settings.py中做

python manage.py test

我的功能 运行 但不是我的单元测试。

django-behave 运行ner 没有 -p 标志或我能看到的等效标志。

如何让 django-behave 运行ner 发现名称不以 "tests_" 开头的文件中的测试?

我通过从 django-behave 切换到 behave-django 解决了这个问题。

behave-django 不需要将 Django TEST_RUNNER 设置为其自己的测试运行器,因此 python manage.py test -p '*.py' 可以工作。

behave-django 不提供同时运行单元测试和验收测试的单个 Django 管理命令。我通过编写新的管理命令解决了这个问题。