如上所述,我有一些使用相对文件路径中的文件的集成测试。为了帮助它,这里是文件结构:
/Dependencies
/VideoTests/bin/release/video.dll
/SearchTests/bin/release/search.dll
/OtherProjects
GUI正在从根运行测试,但是当TeamCity运行测试时,它正在运行每个测试dll bin目录中的测试。现在我不介意哪一个可以跟随另一个,但我确实需要它们是相同的,否则我的相对路径将无法工作!
有什么想法吗?
P.S。使用TeamCity 5.0和NUnit 2.5。
答案 0 :(得分:2)
您可能不想依赖CurrentDirectory。我建议阅读文档,但是你想要带走的主要观点是CurrentDirectory是.exe的起源地:它可以是系统中的任何路径。例如,假设您的用户将.exe(或任何.exe使用您的DLL)添加到其路径中。然后他们可以导航到c:\ foo \ bar并从那里启动.exe,这会将CurrentDirectory设置为“C:\ foo \ bar”,你可能无法处理它。
我认为你最好重做你正在做的事情,这样你就不会依赖于CurrentDirectory。你现在依靠CurrentDirectory遇到了什么问题?
答案 1 :(得分:0)
启动应用程序时,您是否确保TeamCity和NUnit都使用相同的工作目录?
如果不是,您可以调整测试代码中的当前目录。