为什么 Django Behave 测试 运行ner 在我 运行 单个单元测试时说 "ignoring label with dot"?
Why does the Django Behave test runner say "ignoring label with dot" when I run a single unit test?
我有 Behave 验收测试和 unittest/django.test 单元测试。我有
TEST_RUNNER = 'django_behave.runner.DjangoBehaveTestSuiteRunner'
在 settings.py
中。我有多个单元测试文件:
myapp/tests
__init.py__ # empty
tests_a.py
tests_b.py
我想要 运行 一个单元测试文件。 (没有一项功能;我知道该怎么做。)当我这样做时
python manage.py test myapp.tests.tests_a
我明白了
Ignoring label with dot in: myapp.tests.tests_a
然后是 tests_a.py
运行。伟大的!只有我想要的测试 运行 运行。但是测试 运行ner 所说的忽略是什么?我还没有找到 运行 是我想要的测试但没有发出警告的另一个调用。这是怎么回事?
Django 1.10.2,django-behave 0.1.5。
django-behave
允许像这样传递应用名称:
python manage.py test app1 app2
执行此操作时,它会加载属于每个应用程序的功能。您可以在 django_behave/runner.py
中看到该代码。我在这里给出的 link 指向撰写此答案时最新的 已发布 版本。在该模块中,您会发现:
def build_suite(self, test_labels, extra_tests=None, **kwargs):
extra_tests = extra_tests or []
#
# Add BDD tests to the extra_tests
#
# always get all features for given apps (for convenience)
for label in test_labels:
if '.' in label:
print("Ignoring label with dot in: %s" % label)
continue
app = get_app(label)
# Check to see if a separate 'features' module exists,
# parallel to the models module
features_dir = get_features(app)
if features_dir is not None:
# build a test suite for this directory
extra_tests.append(self.make_bdd_test_suite(features_dir))
return super(DjangoBehaveTestSuiteRunner, self
).build_suite(test_labels, extra_tests, **kwargs)
当代码遇到其中有一个点的标签时,它会假定它不是应用程序名称并跳过它。所以你可以这样做:
python manage.py test app1 app2 some.module.name
并且 some.module.name
不会导致 django-behave
尝试加载名为 some.module.name
的应用程序并失败。
最新版本的代码,尚未发布,不再发布有关忽略标签的通知。
我有 Behave 验收测试和 unittest/django.test 单元测试。我有
TEST_RUNNER = 'django_behave.runner.DjangoBehaveTestSuiteRunner'
在 settings.py
中。我有多个单元测试文件:
myapp/tests
__init.py__ # empty
tests_a.py
tests_b.py
我想要 运行 一个单元测试文件。 (没有一项功能;我知道该怎么做。)当我这样做时
python manage.py test myapp.tests.tests_a
我明白了
Ignoring label with dot in: myapp.tests.tests_a
然后是 tests_a.py
运行。伟大的!只有我想要的测试 运行 运行。但是测试 运行ner 所说的忽略是什么?我还没有找到 运行 是我想要的测试但没有发出警告的另一个调用。这是怎么回事?
Django 1.10.2,django-behave 0.1.5。
django-behave
允许像这样传递应用名称:
python manage.py test app1 app2
执行此操作时,它会加载属于每个应用程序的功能。您可以在 django_behave/runner.py
中看到该代码。我在这里给出的 link 指向撰写此答案时最新的 已发布 版本。在该模块中,您会发现:
def build_suite(self, test_labels, extra_tests=None, **kwargs):
extra_tests = extra_tests or []
#
# Add BDD tests to the extra_tests
#
# always get all features for given apps (for convenience)
for label in test_labels:
if '.' in label:
print("Ignoring label with dot in: %s" % label)
continue
app = get_app(label)
# Check to see if a separate 'features' module exists,
# parallel to the models module
features_dir = get_features(app)
if features_dir is not None:
# build a test suite for this directory
extra_tests.append(self.make_bdd_test_suite(features_dir))
return super(DjangoBehaveTestSuiteRunner, self
).build_suite(test_labels, extra_tests, **kwargs)
当代码遇到其中有一个点的标签时,它会假定它不是应用程序名称并跳过它。所以你可以这样做:
python manage.py test app1 app2 some.module.name
并且 some.module.name
不会导致 django-behave
尝试加载名为 some.module.name
的应用程序并失败。
最新版本的代码,尚未发布,不再发布有关忽略标签的通知。