Cor*_*ole 7 python python-3.x python-unittest
在我的 python 应用程序中,我使用程序启动位置的相对路径打开 mp3 文件。为了简单起见,我在这里对我的项目中遇到的问题进行了最小化的重现。
\n\n基本上,我有这样的结构:
\n\nsrc\n\xe2\x94\x94\xe2\x94\x80 main.py\ntest\n\xe2\x94\x94\xe2\x94\x80 test_main.py\nRun Code Online (Sandbox Code Playgroud)\n\n我main.py有一个简单的函数,可以打印并返回当前工作目录:
src\n\xe2\x94\x94\xe2\x94\x80 main.py\ntest\n\xe2\x94\x94\xe2\x94\x80 test_main.py\nRun Code Online (Sandbox Code Playgroud)\n\n因此,如果我cd进入该src文件夹并运行,python main.py我会看到:
def get_cwd() -> str:\n directory = os.path.basename(os.getcwd())\n print(\'Current directory =\', directory)\n return directory\nRun Code Online (Sandbox Code Playgroud)\n\n这是期望的行为,因为在我的程序中,mp3 文件的文件路径是相对于src.
当我尝试编写测试时,问题就出现了。--start-directory无论我传递给什么,我似乎都无法通过这样的测试--top-level-directory:
Current directory = src\nRun Code Online (Sandbox Code Playgroud)\n\n问题:如果将测试保存到不同的目录,我如何运行我的测试,就好像它们在特定目录的上下文中运行一样?
\n\n限制条件:
\n\nfrom\nsrc.main import get_cwd有一个os更改目录的功能,尝试添加os.chdir('src')到您的测试中。
import unittest
import os
from src.main import get_cwd
class TestMain(unittest.TestCase):
def test_get_cwd(self):
os.chdir('src')
print('testing get_cwd()')
current_dir = get_cwd()
self.assertIsNotNone(current_dir)
self.assertEqual(current_dir, 'src')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5315 次 |
| 最近记录: |