实现有序测试后如何解决TFS DirectoryNotFoundException?

时间:2018-06-04 21:20:13

标签: tfs visual-studio-2017 tfs2013

我们有一台TFS 2013服务器,可以在每次办理登机手续时运行我们的CI版本,但我们还有一个夜间版本,可以运行我们的整个测试套件(其中一些是非常昂贵的数据库测试),当时无人问津。

这一切都运行良好但我想通过使用Ordered Test来指定测试的顺序。所以我把它放在适当的位置它似乎运行一切正常,只有一个例外:任何想要通过调用相对路径从磁盘检索文件的测试最终会出现以下错误。

  

测试方法TrackerTests.Accounting.ActionTests.AccountingActionFactoryTests.AccountingActionFactoryGeneratesCorrectActionsForSampleTestData抛出异常:   System.IO.DirectoryNotFoundException:找不到路径的一部分'C:\ Builds \ 3 \ Tracker2 \ Tracker Edge Nightly Test Run \ TestResults \ TFSBuild_T2BUILD2 2018-06-01 12_39_47 \ Out \ Accounting \ SourceData \ Prepay-Cleared- 2013年12月16日至2013年12月22日 - schema.xml中”。       在System.IO .__ Error.WinIOError(Int32 errorCode,String maybeFullPath)      在System.IO.FileSt

这些测试在没有订购测试容器时运行良好的事实让我觉得我只需要告诉它如何到达正确的路径。正确的道路是:

  

C:\ Builds \ 3 \ Tracker2 \ Tracker Edge每晚测试运行\ src_projects \ Tracker2 \ TrackerEdge \ TrackerTests \ Accounting \ SourceData \

但我如何/在哪里这样做?我尝试使用testSetting文件,但我无法使用它。

1 个答案:

答案 0 :(得分:0)

最终,我最终发现测试按命名空间排序 - 至少在顶级。这是在创建.runsettings文件和操作ResultsDirectory元素之后发生的。它影响了构建服务器查找文件的位置,但构建服务器仍然希望为其添加几个子文件夹级别。

通过将我们最昂贵的数据库测试放入他们自己的命名空间,我能够操作命名空间的名称,使其在列表中排序很高,因此在过程的早期执行,这是我们的目标。