Я пытаюсь заставить TeamCity запускать тесты NUnit, как установлено в сценарии NAnt, следующим образом:
<nunit2>
<formatter type="Xml"
usefile="true"
extension=".xml"
outputdir="${BuildArea.ReportsDir}" />
<test assemblyname="${BuildArea.OutputDir}\Common.Tests.dll"
appconfig="src\Common.Tests\Tests.config" />
</nunit2>
Запуск сценария сборки вручную из командной строки на компьютере с сервером сборки / агентом запускаеттесты просто отлично, так что я знаю, что нет никаких проблем с самим сценарием сборки.Однако, когда сборка запускается из TeamCity, я всегда получаю сообщение об ошибке:
"Не удалось найти nunit.Framework сборки"
Я сталкивался с соответствующим постом(http://devnet.jetbrains.net/message/5211436#5211436), который рекомендует поместить nunit.framework в то же место, где находится dll, содержащая тесты, но я уже делал это, и все еще получаю ту же ошибку. Установка в GAC не является опцией.
У кого-нибудь есть идеи, как это исправить? Я потратил часы, пытаясь выяснить, в чем может быть проблема, но я не понимаю, что я могу делать неправильно.
Спасибо
Ниже приведены точные ошибки и трассировка стека:
[23:48:02]: Запустите TeamCity NUnit Test Runner
[23:48:02]:
Ошибка NUnit: System.IO.FileNotFoundException: не удалось загрузить файл или сборку 'nunit.framework, версия = 2.4.8.0, Culture = нейтральный, PublicKeyToken = 96d09a1eb7f44a77' или одна из ее зависимостей. Системе не удалось найтиуказанный файл. Имя файла: 'nunit.framework, Version = 2.4.8.0, Culture = нейтральный, PublicKeyToken = 96d09a1eb7f44a77 '
Трассировка стека сервера: в System.Reflection.Assembly._nLoad (имя_файла_имя_символов, имя_строки, строка кода, сборка доказательств, Boolean forIntrospection) в System.Reflection.Assembly.nLoad (AssemblyName fileName, String codeBase, Evidence AssemblySecurity, Location AssemblyHint, StackCrawlMark & stackMark, Логическое значение throwOnFileNotFound, Boolean дляIntrospectionstackMark, логическое значение forIntrospection) в System.Reflection.Assembly.Load (AssemblyName assemblyRef) в NUnit.Core.TestFramework.FromAssembly (сборка сборки) в NUnit.Core.Builders.TestAssemblyBuilder.Load (путь строки) в NUnnit.TestAssemblyBuilder.Build () в NUnit.Core.Builders.TestAssemblyBuilder.Build (String testName) в NUnit.Core.TestSuiteBuilder.Build (Stкольцо assemblyName, String testName) в NUnit.Core.SimpleTestRunner.Load (String assemblyName, String testName) в NUnit.Core.SimpleTestRunner.Load (String assemblyName) в NUnit.Core.ProxyTestRunner.Load. Nore.ProxyTestRunner.Load (String assemblyName) в System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage (IntPtr md, Object [] args, Объектный сервер, Int32 methodPtr, логическое fExecuteInContext, Object [] & outAruntime)Messaging.)
Исключение, переброшенное в [0]: в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage (IMessage reqMsg, IMessage retMsg) в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke (MessageData)a, тип Int32) в NUnit.Core.TestRunner.Load (String assemblyName) в JetBrains.TeamCity.NUnitLauncher.NUnitRunner.LoadTest (строковый testAssembly, String testName, TestRunner runner) в c: \ Agent \ work \ nsf\ src \ NUnit-2.2 \ NUnitRunner.cs: строка 33 в JetBrains.TeamCity.NUnitLauncher.AssemblyTest.LoadTestDomain () в c: \ Agent \ work \ e34bdcb45e12f223 \ src \ NUnitLauncT.TeamCity.NUnitLauncher.LoadTestDomainAction.Action (тест AssemblyTest) в c: \ Agent \ work \ e34bdcb45e12f223 \ src \ NUnitLauncher \ src \ LoadTestDomainAction.cs: строка 14в JetBrains.TeamCity.NUnitLauncher.TryOneAssemblyTest.Action () в c: \ Agent \ work \ e34bdcb45e12f223 \ src \ NUnitLauncher \ src \ TryOneAssemblyTest.cs: строка 18
в JetBrains.TeamCity.NUnitLauncher.TryOneAssembly.Do () в c: \ Agent \ work \ e34bdcb45e12f223 \ src \ NUnitLauncher \ src \ TryOneAssembly.cs: строка 31