根据documentation for unittest.TestLoader.discover:
discover(start_dir, pattern=’test*.py’, top_level_dir=None)
...所有测试模块必须可以从顶层导入 项目。如果开始目录不是顶级目录那么 顶级目录必须单独指定...
我自己做了一些实验,似乎当top_level_dir
与start_dir
不同且未设置时,没有出错:所有测试都被发现并且正确进口。
我想知道将top_level_dir
参数传递给discover
的目的是什么。为什么需要知道顶级目录是什么?我认为它的所有工作都是(i)在start_dir
中找到测试包/模块,以及(ii)导入它们,不是吗?
或者,有人可以提供一个示例,其中缺少top_level_dir
会导致测试发现至少部分失败吗?