Python单元测试:如何断言文件或文件夹的存在并在失败时打印路径?

诺曼纽斯

在python中test case,我想断言文件或文件夹的存在,并在断言失败的情况下提供有用的错误消息。我该怎么办?

当然可以执行以下操作,但不会在错误消息中产生路径/文件名:

import unittest
import pathlib as pl

class TestCase(unittest.TestCase):
    def test(self):
        # ...
        path = pl.Path("a/b/c.txt")
        self.assertTrue(path.is_file())
        self.assertTrue(path.parent.is_dir())

if __name__ == "__main__":
    unittest.main(verbosity=2)
======================================================================
FAIL: test (__main__.TestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "my_test.py", line 194, in test
    self.assertTrue(path.is_file())
AssertionError: False is not true

在更大的测试中,乍一看断言对于哪个文件可能是有益的。如何扩展unittest.TestCase以为此类测试打印更好的断言消息?

======================================================================
FAIL: test (__main__.TestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "my_test.py", line 194, in test
    self.assertFileExists(path)
AssertionError: File does not exist: "a/b/c.txt"
诺曼纽斯

扩展unittest.TestCase附加断言对我来说是最好的。

class TestCaseBase(unittest.TestCase):
    def assertIsFile(self, path):
        if not pl.Path(path).resolve().is_file():
            raise AssertionError("File does not exist: %s" % str(path))

class ActualTest(TestCaseBase):
    def test(self):
        path = pl.Path("a/b/c.txt")
        self.assertIsFile(path)

这样产生:

======================================================================
FAIL: test (__main__.TestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "my_test.py", line 194, in test
    raise AssertionError("File does not exist: %s" % str(path))
AssertionError: File does not exist: a/b/c.txt

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Maven中,是否可以将集成测试与单元测试保存在单独的文件夹中?

来自分类Dev

Python单元测试结果文件

来自分类Dev

如何对xml文件进行单元测试?

来自分类Dev

使用Gradle时如何使IDEA / Android Studio识别我的单元测试文件夹?

来自分类Dev

用于IntelliJ中Android单元测试的instrumentTest文件夹

来自分类Dev

Android Studio单元测试中的Assets文件夹

来自分类Dev

Ruby:如何用一个命令运行文件夹中的所有单元测试?

来自分类Dev

使用相同的junit临时文件夹进行多个单元测试

来自分类Dev

如何以二维形式指定单元测试文件夹

来自分类Dev

导入头文件时单元测试失败

来自分类Dev

为什么单元测试不在项目输出文件夹中运行?

来自分类Dev

断言失败后如何继续进行单元测试?

来自分类Dev

当多个单元测试复制同一文件时,运行所有单元测试都会失败

来自分类Dev

如何对失败的文件删除进行单元测试?

来自分类Dev

单元测试:如何模拟MEDIA_ROOT但仍访问存储在我普通MEDIA文件夹中的文件

来自分类Dev

单个python文件的单元测试

来自分类Dev

如何找到包含特定类型x文件的文件夹并在OSX上输出这些路径

来自分类Dev

Python单元测试结果文件

来自分类Dev

在多个文件夹中具有测试用例的简单Python单元测试

来自分类Dev

Ruby on Rails-在子文件夹中运行单元测试

来自分类Dev

使用Gradle时,如何使IDEA / Android Studio识别我的单元测试文件夹?

来自分类Dev

单元测试文件上传失败

来自分类Dev

从python上的路径打印特定的文件夹名称

来自分类Dev

从指定的文件夹重新共享运行单元测试,但是缺少应用程序配置文件

来自分类Dev

Android Studio测试文件夹未出现在单元测试工件中

来自分类Dev

如何以二维形式指定单元测试文件夹

来自分类Dev

如果文件保存在项目文件夹中,如何在Eclipse中定义“测试数据表”路径

来自分类Dev

当多个单元测试复制同一文件时,运行所有单元测试都会失败

来自分类Dev

AngularJS和Karma / Jasmine单元测试-文件夹结构和生产

Related 相关文章

  1. 1

    在Maven中,是否可以将集成测试与单元测试保存在单独的文件夹中?

  2. 2

    Python单元测试结果文件

  3. 3

    如何对xml文件进行单元测试?

  4. 4

    使用Gradle时如何使IDEA / Android Studio识别我的单元测试文件夹?

  5. 5

    用于IntelliJ中Android单元测试的instrumentTest文件夹

  6. 6

    Android Studio单元测试中的Assets文件夹

  7. 7

    Ruby:如何用一个命令运行文件夹中的所有单元测试?

  8. 8

    使用相同的junit临时文件夹进行多个单元测试

  9. 9

    如何以二维形式指定单元测试文件夹

  10. 10

    导入头文件时单元测试失败

  11. 11

    为什么单元测试不在项目输出文件夹中运行?

  12. 12

    断言失败后如何继续进行单元测试?

  13. 13

    当多个单元测试复制同一文件时,运行所有单元测试都会失败

  14. 14

    如何对失败的文件删除进行单元测试?

  15. 15

    单元测试:如何模拟MEDIA_ROOT但仍访问存储在我普通MEDIA文件夹中的文件

  16. 16

    单个python文件的单元测试

  17. 17

    如何找到包含特定类型x文件的文件夹并在OSX上输出这些路径

  18. 18

    Python单元测试结果文件

  19. 19

    在多个文件夹中具有测试用例的简单Python单元测试

  20. 20

    Ruby on Rails-在子文件夹中运行单元测试

  21. 21

    使用Gradle时,如何使IDEA / Android Studio识别我的单元测试文件夹?

  22. 22

    单元测试文件上传失败

  23. 23

    从python上的路径打印特定的文件夹名称

  24. 24

    从指定的文件夹重新共享运行单元测试,但是缺少应用程序配置文件

  25. 25

    Android Studio测试文件夹未出现在单元测试工件中

  26. 26

    如何以二维形式指定单元测试文件夹

  27. 27

    如果文件保存在项目文件夹中,如何在Eclipse中定义“测试数据表”路径

  28. 28

    当多个单元测试复制同一文件时,运行所有单元测试都会失败

  29. 29

    AngularJS和Karma / Jasmine单元测试-文件夹结构和生产

热门标签

归档