异常未引发assertRaises()?

2024-09-30 02:32:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我输入错误,我希望引发异常。不知怎么的,这并没有发生。这是我的单元测试代码:

def test_invalid_bag_json_conversion_1(self):
        file_name = "../test/test_files/wrong_bag.bag"
        ru = RosbagUploader(file_name, self.json_output, "", "", "", "")
        status = ru.start()
        self.assertRaises(Exception, RosbagUploader, file_name, self.json_output, "", "", "", "")
        self.assertEquals(ReturnCodes.FAIL, status)

我正在测试的代码:

^{pr2}$

它显示引发异常的输出,如下所示:

[ERROR] (<class 'rosbag.bag.ROSBagException'>, ROSBagException(), <traceback object at 0x7fdcb463e8c0>)
EException AttributeError: "'RosbagUploader' object has no attribute '_rosbag'" in <bound method RosbagUploader.__del__ of <rosbag_deserializer_core.RosbagUploader object at 0x7fdcb4899ad0>> ignored

这就是它应该做的。但为什么不提出例外呢?在


Tags: 代码nametestselfjsonoutputobjectru
2条回答

实际上,您忽略了异常,因为在print语句之后没有重新引发:

try:
    [...]
except:
    print("[ERROR] {}".format(sys.exc_info()))
    self.overall_status = ReturnCodes.FAIL

需要重新引发调用者才能接收异常:

^{pr2}$

您有__del__销毁方法吗?似乎在那里失败了。在

相关问题 更多 >

    热门问题