【问题标题】:TFS 2015 Cannot delete NUnit test dlls after previous successful buildTFS 2015 在上一次成功构建后无法删除 NUnit 测试 dll
【发布时间】:2015-12-23 12:49:26
【问题描述】:

我正在使用 NUnit 和 NUnit 测试适配器 NuGet 包在 TFS 2015 中运行一些非常简单的单元测试,但我能让测试通过的唯一方法是重新启动 TFS 服务,然后项目构建和测试通过 一次。下次我运行它时,我收到以下错误。

Build
(-1, 0)
Exception Message: Access to the path 'C:\Builds\2\RGDAgile\RGD.Common\src\RGD.Common\packages\NUnitTestAdapter.2.0.0\lib\nunit.core.dll' is denied. (type UnauthorizedAccessException)
Exception Stack Trace: at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.File.InternalDelete(String path, Boolean checkHost)
at System.IO.File.Delete(String path)
at Microsoft.TeamFoundation.Common.FileSpec.DeleteFile(String path, Boolean throwExceptionOnFailure)
at Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryInternal(String path)
at Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryInternal(String path)
at Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryInternal(String path)
at Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryInternal(String path)
at Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryInternal(String path)
at Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectory(String path, Boolean recursive, Boolean handleLongPaths)
at Microsoft.TeamFoundation.Build.Workflow.Activities.DeleteDirectory.Execute(CodeActivityContext context)
at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager)
at System.Activities.ActivityInstance.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)
at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)

就好像以前的构建没有释放对 dll 的控制,所以下次运行构建时它无法清除目录以拉下新代码。

任何帮助将不胜感激。我不能是唯一一个在 TFS 2015 上运行 NUnit 的人

【问题讨论】:

    标签: tfs nunit


    【解决方案1】:

    packages 文件夹签入到源代码管理时,我已经看到了这样的行为。删除packages 文件夹(最好通过NuGet.config 的设置忽略它!)并让构建过程根据需要恢复包。

    您还应该考虑迁移到新的构建系统,因为它在大多数方面都优于旧的 XAML 构建系统。

    【讨论】:

    • 谢谢丹尼尔,我会在星期一试试,让你知道我的进展情况
    • 没有包文件夹没有签入..问题仍然存在。还有其他想法吗?
    【解决方案2】:

    我最终将 NUnitTestAdapter 添加到构建服务器上可以自动找到和使用的位置。那么可以从它从 NuGet 获得的包中删除它。

    这里描述

    http://www.codewrecks.com/blog/index.php/2015/03/16/running-nunit-tests-in-a-tfs-2015-build-vnext/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-31
      • 1970-01-01
      • 2017-08-20
      • 2014-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多