Python 3.x Python:单元测试/集成测试:文件路径的变通方法?

Python 3.x Python:单元测试/集成测试:文件路径的变通方法?,python-3.x,unit-testing,Python 3.x,Unit Testing,我需要在项目中运行一些单元测试和集成测试。我面临的问题是,有时文件被读取(作为模拟数据),并且依赖于我开始测试的位置,必须更改相对路径 即使测试是从不同的目录启动的,是否有一种不更改路径的解决方案?(比如在pycharm中,有时来自名为“tests”的目录,有时来自“unit”目录) 例如: 我在Pycharm中从“test”目录运行测试。在我的一个单元测试中,我读取了一个路径为“../data”的文件 有时,我从一个名为“单元测试”的目录运行测试,该目录位于“测试”目录中。现在,我必须从上面调

我需要在项目中运行一些单元测试和集成测试。我面临的问题是,有时文件被读取(作为模拟数据),并且依赖于我开始测试的位置,必须更改相对路径

即使测试是从不同的目录启动的,是否有一种不更改路径的解决方案?(比如在pycharm中,有时来自名为“tests”的目录,有时来自“unit”目录)

例如:

我在Pycharm中从“test”目录运行测试。在我的一个单元测试中,我读取了一个路径为“../data”的文件
有时,我从一个名为“单元测试”的目录运行测试,该目录位于“测试”目录中。现在,我必须从上面调整我的文件路径,否则将找不到我的文件。

有几个选项可以解决您描述的问题:

  • 编写一个包装器脚本,在运行测试之前首先将工作目录设置为固定路径
  • 您可以将环境变量中的绝对路径传递给测试可执行文件
  • 不要从文件中读取测试数据,而是将测试数据合并到测试代码中

我不理解你关于不改变路径的第二段。你能举例说明你希望你的测试表现如何吗?我添加了一个例子