在MSBuild项目中运行Nunit控制台,为了执行测试,构建了一个命令,该命令包含大约90个路径,每个路径都是已编译测试项目(.test.dll)的完整路径,并且至少包含100个路径字符但不超过150。
当脚本运行时,我收到以下错误:
NUnit version 2.5.10.11092
Copyright (C) 2002-2009 Charlie Poole.
Copyright (C) 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov.
Copyright (C) 2000-2002 Philip Craig.
All Rights Reserved.
Runtime Environment -
OS Version: Microsoft Windows NT 6.1.7601 Service Pack 1
CLR Version: 2.0.50727.5485 ( Net 2.0 )
ProcessModel: Default DomainUsage: Multiple
Execution Runtime: Default
Unhandled Exception:
System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Builds\123\XXXX\XXX.Build.Sonar\srcDroplocation\Build\x86\Release\xxxxx.xxxx.CustomTypes.Test.dll'.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights
, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolea
n bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
at NUnit.Core.AssemblyReader.CalcHeaderOffsets()
at NUnit.Core.AssemblyReader..ctor(String assemblyPath)
at NUnit.Util.RuntimeFrameworkSelector.SelectRuntimeFramework(TestPackage package)
at NUnit.Util.DefaultTestRunnerFactory.GetTargetProcessModel(TestPackage package)
at NUnit.Util.DefaultTestRunnerFactory.MakeTestRunner(TestPackage package)
at NUnit.ConsoleRunner.ConsoleUi.Execute(ConsoleOptions options)
at NUnit.ConsoleRunner.Runner.Main(String[] args)
此文件的原始路径是'C:\ Builds \ 123 \ XXXX \ XXX.Build.Sonar \ src \ Droplocation \ Build \ x86 \ Release \ xxxxx.xxxx.CustomTypes.Test.dll'。该文件存在,我注意到在异常中src和Droplocation之间的路径中缺少反斜杠。
这个问题发生在我的构建服务器上,在我的本地机器上工作,区别在于我的本地机器文件夹不是那么深:'C:\ T \ XXX \ Droplocation \ Build \ x86 \ Release \ xxxxx。 xxxx.CustomTypes.Test.dll'
对使用NUnit的路径有任何限制吗?
我还尝试创建一个.nunit文件,以便将所有引用放在上面,但它会导致另一个问题
答案 0 :(得分:0)
路径中间缺少斜杠是由构建脚本引起的,而不是由NUnit引起的。我的猜测是构建脚本将两个字符串附加在一起,两个字符串都没有必要的斜杠。如果相同的构建脚本在您的盒子上工作,它可能是服务器上的全局变量没有开始/结束斜杠,而机器上的变量就是这样。
编辑:根据您的上述评论,您可能遇到了Windows限制。根据{{3}},命令提示符限制为8191个字符。此限制是在扩展任何环境变量之后。您可能需要减少参数数量或让构建服务器编译为更短的路径。
答案 1 :(得分:0)
确实是NUnit版本2.5.10.11092中的错误。
subst t:C:\ Builds \ 123 \ XXXX \ XXX.Build.Sonar \ src \ Droplocation