Сбой тестов SpecFlow с исключениями «Отказано в доступе» - PullRequest
2 голосов
/ 24 мая 2011

После запуска и запуска Orchard CMS, а затем регистрации в нашем репозитории Subversion я изучил существующее покрытие тестов и, в частности, тесты SpecFlow.

Когда я пытаюсь запустить тесты из Runner CodeRush или из графического интерфейса NUnit (v2.5.10), я получаю исключения из 67 тестов:

Orchard.Specs.AdditionFeature.AnonymousUserCanSeeTheHomePageButNotTheDashboard:
System.UnauthorizedAccessException : Access to the path
'C:\Users\richard.slater\AppData\Local\Temp\Orchard.Specs\5dchvodt.b1i\Modules\
Orchard.Packaging\Views\.svn\all-wcprops' is denied.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite)
at Orchard.Specs.Util.PathExtensions.FileCopy(Path sourcePath, Path targetPath, Path sourceFile) in C:\Project\Damovo.co.uk_NEW\src\Orchard.Specs\Util\PathExtensions.cs:line 51
at Orchard.Specs.Util.PathExtensions.c__DisplayClass1.b__0(Path file) in C:\Project\Damovo.co.uk_NEW\src\Orchard.Specs\Util\PathExtensions.cs:line 22
at Bleroy.FluentPath.PathCollection.ForEach(Action`1 action)
at Orchard.Specs.Util.PathExtensions.DeepCopy(Path sourcePath, Path targetPath) in C:\Project\Damovo.co.uk_NEW\src\Orchard.Specs\Util\PathExtensions.cs:line 20
at Orchard.Specs.Hosting.WebHost.CopyExtension(String extensionFolder, String extensionName, ExtensionDeploymentOptions deploymentOptions) in C:\Project\Damovo.co.uk_NEW\src\Orchard.Specs\Hosting\WebHost.cs:line 202
at Orchard.Specs.Bindings.WebAppHosting.GivenIHaveModule(String moduleName) in C:\Project\Damovo.co.uk_NEW\src\Orchard.Specs\Bindings\WebAppHosting.cs:line 132
at Orchard.Specs.Bindings.WebAppHosting.GivenIHaveACleanSiteWith(String virtualDirectory, Table table) in C:\Project\Damovo.co.uk_NEW\src\Orchard.Specs\Bindings\WebAppHosting.cs:line 161
at Orchard.Specs.Bindings.OrchardSiteFactory.GivenIHaveInstalledOrchard(String virtualDirectory) in C:\Project\Damovo.co.uk_NEW\src\Orchard.Specs\Bindings\OrchardSiteFactory.cs:line 23
at Orchard.Specs.Bindings.OrchardSiteFactory.GivenIHaveInstalledOrchard() in C:\Project\Damovo.co.uk_NEW\src\Orchard.Specs\Bindings\OrchardSiteFactory.cs:line 16
at TechTalk.SpecFlow.Bindings.MethodBinding.InvokeAction(Object[] arguments, ITestTracer testTracer, TimeSpan& duration)
at TechTalk.SpecFlow.TestRunner.ExecuteStepMatch(BindingMatch match, Object[] arguments)
at TechTalk.SpecFlow.TestRunner.ExecuteStep(StepArgs stepArgs)
at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors()
at Orchard.Specs.AdditionFeature.AnonymousUserCanSeeTheHomePageButNotTheDashboard() in c:\Project\Damovo.co.uk_NEW\src\Orchard.Specs\PermissionModel.feature:line 28

Я пытался выполнить тесты от имени Администратора, однако я знаю реальные знания о SpecFlow, поэтому я подозреваю, что упускаю что-то критическое.

1 Ответ

1 голос
/ 24 мая 2011

Похоже, что он пытается получить доступ к скрытым папкам Subversion (.svn), и они просто недоступны.Возможные причины:

  • У пользователя, которому вы сейчас работаете, недостаточно прав доступа (читай). Попробуйте установить их для текущего вошедшего в систему пользователя.Вкладка «Безопасность» на экране свойств папки репозитория верхнего уровня - изменения должны распространяться на все нижние папки.
  • Существует клиент Subversion (например, TortoiseSVN), работающий в фоновом режиме , который имеет тефайлы открыты для чтения / записи.Это более вероятно.Попробуйте отключить его (или убить процесс клиента SVN, если нет возможности его закрыть) и посмотрите, что произойдет.

Работа с внутренними файлами .svn может быть опасной и повредить вашизвлеченная папка репозитория.Я не знаю, если SpecFlow изменяет эти файлы в процессе - если нет, это хорошо

Существует также решение для экспорта файлов репозитория ( через TortoiseSVN Export option )в отдельную папку ( материал, относящийся к SVN, не будет скопирован ), сделайте всю работу над копией, и каждый раз, когда вы захотите зафиксировать, - скопируйте измененные файлы обратно в папку, привязанную к SVN.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...