有人知道nosetest的-m、-i和-e是如何工作的吗?

发布于 2024-12-14 11:08:56 字数 778 浏览 1 评论 0原文

我试图让鼻子测试来识别我的测试,但它没有正确运行我的任何测试。

我有以下文件结构

Project
    +----Foo/
          +----__init__.py
          +----bar.py
    +----test/
          +----__init__.py
          +----unit/
                +----__init__.py
                +----bar_test.py
          +----functional/
                +----__init__.py
                +----foo_test.py

在 bar_test.py

class BarTest(unittest.TestCase):
     def bar_1_test():
         ...

在 foo_test.py

class FooFTest.py
     def foo_1_test():
         ...

使用鼻子测试的 -m、-i、-e 选项

  • 什么是正则表达式 我只需要运行单元测试(在单元/下,类 BarTest 中的测试)
  • 什么是正则表达式 我只需要运行功能测试(在功能/下,类 FooFTest 中的测试)

我已经尝试了各种组合,但似乎无法让鼻子测试一致地执行我想要的操作

I am trying to get nosetests to identify my tests but it is not running any of my tests properly.

I have the following file structure

Project
    +----Foo/
          +----__init__.py
          +----bar.py
    +----test/
          +----__init__.py
          +----unit/
                +----__init__.py
                +----bar_test.py
          +----functional/
                +----__init__.py
                +----foo_test.py

Within bar_test.py

class BarTest(unittest.TestCase):
     def bar_1_test():
         ...

Within foo_test.py

class FooFTest.py
     def foo_1_test():
         ...

Using -m, -i, -e options of nosetests

  • What is the regex I need to run only unit tests (under unit/, tests in class BarTest)
  • What is the regex I need run only functional tests (under functional/, tests in class FooFTest)

I've tried various combinations and can't seem to get nosetests to do what I want consistently

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

森林迷了鹿 2024-12-21 11:08:56

仅运行 Project/test/unit 下的测试的最简单方法是使用 --where。例如:

nosetests --where=Project/test/unit

然后使用 --match (-m) 或 --exclude (-e) 进行细化列表(如果需要)。

如果您仍然想使用正则表达式选择器,您可能可以这样做(未测试):

nosetests --match='^Foo[\b_\./-])[Tt]est'

Project 目录执行此脚本将运行以“Foo”开头并以“”结尾的所有测试[Tt]est”。

作为一般规则,您可能想要使用 --match--exclude,但不能同时使用两者。这些参数都指定要匹配的函数名称的模式。您可以使用 --ignore-files 优化任一文件,这自然允许您忽略整个文件。

The easiest way to run only the tests under Project/test/unit is to use --where. For example:

nosetests --where=Project/test/unit

Then use --match (-m) or --exclude (-e) to refine the list, if needed.

If you still want to use the regex selectors, you can probably do it like this (not tested):

nosetests --match='^Foo[\b_\./-])[Tt]est'

Executing this script from the Project directory would run all tests that start with "Foo" and end in "[Tt]est".

As a general rule, you probably want to use either --match or --exclude, but not both. These parameters both specify the pattern of the function names to match. You can refine either one by using --ignore-files which, naturally, allows you to ignore whole files.

-黛色若梦 2024-12-21 11:08:56

给定您的目录结构,您可以使用 --exclude 选项轻松运行测试片段。

运行所有测试:

nosetests Project

运行单元测试:

nosetests Project -e functional

运行功能测试:

nosetests Project -e unit

如果您有更复杂的测试执行需求,我建议标记测试并使用attrib 包

Given your directory structure, you can easily run segments of the tests using the --exclude option.

Run all tests:

nosetests Project

Run unit tests:

nosetests Project -e functional

Run functional tests:

nosetests Project -e unit

If you have more complex test execution needs, I'd recommend marking the tests and using the attrib package.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文