Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在需要告诉测试文件的位置时,如何运行python单元测试?_Python_Unit Testing - Fatal编程技术网

在需要告诉测试文件的位置时,如何运行python单元测试?

在需要告诉测试文件的位置时,如何运行python单元测试?,python,unit-testing,Python,Unit Testing,我试图为一个对文件进行处理的方法编写一个Pythonunittest。这是一个大的二进制文件,所以我不想在setUp()方法中重新创建它的临时版本 对于这样的场景,是否有编写unittest的最佳实践 我是否将文件路径作为参数传递 我是否要从设置中的托管服务下载该文件 还是有一种更被接受的方式将文件路径传递到单元测试中 正确的方法是按照以下思路进行结构化项目: my_project |--src |--foo.py |--tests |--test.py |--data |-

我试图为一个对文件进行处理的方法编写一个Python
unittest
。这是一个大的二进制文件,所以我不想在
setUp()
方法中重新创建它的临时版本

对于这样的场景,是否有编写
unittest
的最佳实践

  • 我是否将文件路径作为参数传递
  • 我是否要从
    设置中的托管服务下载该文件
  • 还是有一种更被接受的方式将文件路径传递到单元测试中

正确的方法是按照以下思路进行结构化项目:

my_project
|--src
   |--foo.py
|--tests
   |--test.py
|--data
   |--file.dat
如果不想将文件签入正在使用的任何源代码管理,只需将其添加到忽略文件中即可

这样,文件的位置就不会改变,您可以从
foo.py
tests.py


运行测试套件时不必传递任意文件名参数。如果文件大小是个问题,那么每次从服务下载它似乎与创建一个临时文件无异。

如果文件与测试用例和测试代码位于相同的repo/parentdir/etc中,在测试用例中使用相对文件路径获取它并没有什么错,但它不一定在同一个目录中。或者至少这是我希望避免的。与测试用例相同的目录?那很好。或者你的意思是它不会在每次测试用例运行时都在同一个目录中吗?它与测试用例不在同一个目录中。也不会每次都在同一个目录中。这样,同事也可以在其本地环境中运行
unittest
。您应该与同事协调,并在其中包含代码的文件夹结构上达成一致。感谢您在此处的输入。因为这似乎是一个不错的最佳实践方法,所以我将设计我的测试。谢谢