我将在我相当大的项目中使用nose作为我已经实现的unittest类的测试发现方法。我的印象是,鼻子主要用于测试发现和测试运行(同时也是如此)。但我看到this question好像鼻子是单位测试的替代品。有人可以澄清他们的意思吗?我错过了鼻子提供的一些核心功能吗?
作为旁注,py.test和鼻子有什么区别?
答案 0 :(得分:8)
鼻子docs说:
nose提供备用测试发现和运行过程 unittest,一个旨在模仿py.test的行为的 在不诉诸太多魔法的情况下,这是合理可行的。
如果你take a peek at the code,你会看到unittest是其中一个依赖项。
import logging
import sys
import unittest
所以 - 据我所知 - 我会说鼻子是用于运行测试的 替代 ,而不是替换 em>到unittest模块(在这里玩一些语义,但我希望这很清楚)。
答案 1 :(得分:7)
鼻子模仿py.test的行为。这就是他们在website上所说的话:
nose为unittest提供了另一个测试发现和运行过程,这个过程旨在尽可能合理地模仿py.test的行为,而不需要过多的魔法
Nose是unittest的扩展,并添加了问题https://stackoverflow.com/questions/5696884/python-nose-vs-unittest中列出的功能。