SpecFlow测试失败,拒绝访问拒绝异常

问题描述:

在启动并运行了Orchard CMS之后,签入了Subversion存储库后,我一直在查看现有的测试覆盖范围,特别是SpecFlow测试。SpecFlow测试失败,拒绝访问拒绝异常

当我尝试并运行的CodeRush测试跑步或NUnit的GUI(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的真正知识,所以我怀疑我缺少重要的东西。

它看起来像试图访问隐藏的Subversion文件夹(.svn),它们根本无法访问。可能的原因是:

  • 用户accound,在其下当前操作没有足够的访问权限(读取)。尝试在顶级存储库文件夹“属性”屏幕上的安全选项卡上为当前登录的用户设置这些变化 - 更改应传播到所有较低文件夹。
  • 有一个Subversion客户端(如TortoiseSVN)在后台运行,其中有这些文件打开供读/写。这更可能。尝试关闭它(或者如果没有关闭它的选项,则会终止SVN客户端进程)并查看会发生什么。

内部的.svn文件搞乱是危险的,破坏你的签出的存储库文件夹。我不知道,如果SpecFlow修改的过程中这些文件 - 如果不是,这是很好的

也有(通过TortoiseSVN输入导出选项)到单独的文件夹(的SVN-导出库文件的解决方案相关的东西不会被复制),做所有工作的副本,每次你想提交 - 将更改的文件复制回SVN绑定的文件夹。

+0

给“每个人”完全控制该文件夹不起作用。从HG仓库克隆了Orchard,现在我在HttpClient.cs中遇到异常,怀疑这是因为测试期望在http:// localhost /上看到Orchard,而不是http:// localhost: /我将进一步调查。感谢您的帮助以及您对社区的贡献。 – 2011-05-25 21:54:38