Python 如何处理耗时的测试

Python 如何处理耗时的测试,python,nose,nosetests,Python,Nose,Nosetests,我有一些测试,它们在运行时有很大的差异。大多数只需不到一秒钟,有些可能需要几秒钟,有些可能需要几分钟 我能不能在鼻子测试中说明这一点 最后,我希望能够只运行我的测试的一个子集,例如,不到1秒(通过我指定的预期运行时估计值)。看看鼻子测试的属性插件,您可以手动将测试标记为@attr('slow')和@attr('fast')。你可以用tunnosetests-a'!然后放慢速度“,以快速运行测试 如果您可以自动完成这项工作,那就太好了,但是我担心您需要编写额外的代码来动态完成这项工作。如果您正在进

我有一些测试,它们在运行时有很大的差异。大多数只需不到一秒钟,有些可能需要几秒钟,有些可能需要几分钟

我能不能在鼻子测试中说明这一点

最后,我希望能够只运行我的测试的一个子集,例如,不到1秒(通过我指定的预期运行时估计值)。

看看鼻子测试的属性插件,您可以手动将测试标记为
@attr('slow')
@attr('fast')
。你可以用tun
nosetests-a'!然后放慢速度“
,以快速运行测试

如果您可以自动完成这项工作,那就太好了,但是我担心您需要编写额外的代码来动态完成这项工作。如果您正在进行快速开发,我将在启用XUnitXML输出的情况下运行nose(它跟踪每个测试的运行时)。您的测试模块可以从以前的运行动态读取xml输出文件,并相应地设置测试的属性设置,以过滤掉快速测试。通过这种方式,您不必手动执行此操作,但需要更多的工作(并且您必须至少运行一次所有测试)。

请查看关于鼻子测试的属性插件,您可以手动将测试标记为
@attr('slow')
@attr('fast')
。你可以用tun
nosetests-a'!然后放慢速度“
,以快速运行测试


如果您可以自动完成这项工作,那就太好了,但是我担心您需要编写额外的代码来动态完成这项工作。如果您正在进行快速开发,我将在启用XUnitXML输出的情况下运行nose(它跟踪每个测试的运行时)。您的测试模块可以从以前的运行动态读取xml输出文件,并相应地设置测试的属性设置,以过滤掉快速测试。通过这种方式,您不必手动进行测试,但需要更多的工作(并且您必须至少运行一次所有测试)。

我认为更好的办法是找出为什么您的测试需要几分钟才能运行。这听起来像是一个很大的外部依赖性问题,或者只是将测试组织到
fast
测试模块和
slow
测试模块中,并根据需要只调用其中一个。Nosetests只支持运行测试的一个子集,请参阅以获取一些示例。@NickBailey:我知道为什么它们需要很长时间。我在一些地方训练了一个机器学习问题。这需要时间。我不想每次都运行那些大型测试。我认为更好的办法是弄清楚为什么您的测试需要几分钟才能运行。这听起来像是一个很大的外部依赖性问题,或者只是将测试组织到
fast
测试模块和
slow
测试模块中,并根据需要只调用其中一个。Nosetests只支持运行测试的一个子集,请参阅以获取一些示例。@NickBailey:我知道为什么它们需要很长时间。我在一些地方训练了一个机器学习问题。这需要时间。我不想每次都进行那些大的测试。