草庐IT

python - 禁用 Python Nose 测试

当使用Python的Nose测试时,可以通过将测试函数的__test__属性设置为false来禁用单元测试。我已经使用以下装饰器实现了这一点:defunit_test_disabled():defwrapper(func):func.__test__=Falsereturnfuncreturnwrapper@unit_test_disableddeftest_my_sample_test()#codehere...但是,这具有将包装器调用为单元测试的副作用。Wrapper将始终通过,但它包含在nosetests输出中。是否有另一种构造装饰器的方法,以便测试不会运行并且不会出现在Nose

python - 如何使用 Nose 的assert_raises?

我搜索了文档,但找不到任何文档。有一对没有过多解释。谁能给我解释一下Nose的问题assert_raises(whatshouldIputhere?)功能及使用方法? 最佳答案 虽然接受的答案是正确的,但我认为assert_raises方法有更好的用途。如果您只是想断言发生了异常,使用@raises语法可能更简单、更清晰。@raises(HTTPError)deftest_exception_is_raised:call_your_method(p1,p2)但是,假设您想对引发的异常做更多的事情,例如:我们需要断言引发的HTTPEr

python - 如何使用 Nose 的assert_raises?

我搜索了文档,但找不到任何文档。有一对没有过多解释。谁能给我解释一下Nose的问题assert_raises(whatshouldIputhere?)功能及使用方法? 最佳答案 虽然接受的答案是正确的,但我认为assert_raises方法有更好的用途。如果您只是想断言发生了异常,使用@raises语法可能更简单、更清晰。@raises(HTTPError)deftest_exception_is_raised:call_your_method(p1,p2)但是,假设您想对引发的异常做更多的事情,例如:我们需要断言引发的HTTPEr

python - pdb.set_trace() 导致卡住的 Nose 测试,不会进入调试器

我正在使用Nose测试运行一套测试(.py文件)。使用经典importpdb;pdb.set_trace()nosetests运行永远不会完成。它只是卡在设置断点的位置,但从不掉入pdb调试器。任何想法为什么会这样?我尝试将断点移动到多个不同的位置(其他测试函数、其他文件),但均无济于事。 最佳答案 使用-s/--nocapture选项运行Nose,您将能够看到pdb提示并与调试器正常交互。如果使用命令行意味着:-pythonmanage.pytest-s[other-opts-and-args]

python - pdb.set_trace() 导致卡住的 Nose 测试,不会进入调试器

我正在使用Nose测试运行一套测试(.py文件)。使用经典importpdb;pdb.set_trace()nosetests运行永远不会完成。它只是卡在设置断点的位置,但从不掉入pdb调试器。任何想法为什么会这样?我尝试将断点移动到多个不同的位置(其他测试函数、其他文件),但均无济于事。 最佳答案 使用-s/--nocapture选项运行Nose,您将能够看到pdb提示并与调试器正常交互。如果使用命令行意味着:-pythonmanage.pytest-s[other-opts-and-args]

使用nose进行测试的Python导入-在当前包之上导入模块的最佳实践是什么

这是一个经常以不同形式被问到的问题,并且经常得到“大声笑你做得不好”的回答。很确定这是因为人们(包括我)正在尝试使用一个常识场景作为实现,而解决方案并不明显(如果你以前没有这样做过的话)。会接受“让飞出瓶子”的答案。给定project/__init__.py/code__init__.pysut.py/tests__init__.pytest_sut.pytests_sut.py从哪里开始:importcode.sut在根目录中运行Nose测试会导致:ImportError:Nomodulenamedcode.sut走过的道路:a)使用做一个亲戚from..codeimportsutb

使用nose进行测试的Python导入-在当前包之上导入模块的最佳实践是什么

这是一个经常以不同形式被问到的问题,并且经常得到“大声笑你做得不好”的回答。很确定这是因为人们(包括我)正在尝试使用一个常识场景作为实现,而解决方案并不明显(如果你以前没有这样做过的话)。会接受“让飞出瓶子”的答案。给定project/__init__.py/code__init__.pysut.py/tests__init__.pytest_sut.pytests_sut.py从哪里开始:importcode.sut在根目录中运行Nose测试会导致:ImportError:Nomodulenamedcode.sut走过的道路:a)使用做一个亲戚from..codeimportsutb

python - 在 tearDown() 方法中获取 Python 的单元测试结果

是否可以在tearDown()方法中获取测试结果(即是否所有断言都已通过)?我正在运行Selenium脚本,我想从tearDown()内部做一些报告,但是我不知道这是否可能。 最佳答案 截至2022年3月,此答案已更新为支持3.4和3.11之间的Python版本(包括最新的开发Python版本)。错误/失败的分类与输出unittest中使用的分类相同。它在tearDown()之前无需对代码进行任何修改即可工作。它正确识别装饰器skipIf()和expectedFailure。它也兼容pytest.代码:importunittestc

python - 在 tearDown() 方法中获取 Python 的单元测试结果

是否可以在tearDown()方法中获取测试结果(即是否所有断言都已通过)?我正在运行Selenium脚本,我想从tearDown()内部做一些报告,但是我不知道这是否可能。 最佳答案 截至2022年3月,此答案已更新为支持3.4和3.11之间的Python版本(包括最新的开发Python版本)。错误/失败的分类与输出unittest中使用的分类相同。它在tearDown()之前无需对代码进行任何修改即可工作。它正确识别装饰器skipIf()和expectedFailure。它也兼容pytest.代码:importunittestc

python - 使用 nosetests --pdb 选项设置断点

nosetests--pdb让我在错误或失败时停下来,但这对我的需要来说太晚了。在执行期间单步执行代码有助于我调试问题所在。但是,nosetests很有帮助,因为它们允许依赖于相对导入的测试(即包中的测试)。如何在测试执行前设置断点?目前我正在使用:python-mpdb/path/to/my/noseteststestfile.py这个解决方案是不够的。Nosetests会干扰pdb输出,并且我的键盘控件(例如箭头键)已损坏。使用导入pdb;pdb.set_trace()似乎是个好主意,但是nosetests阻止了我对pdb控制台的访问。 最佳答案