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