2

在启动并运行 Orchard CMS 并检查到我们的 Subversion 存储库后,我一直在查看现有的测试覆盖率,特别是 SpecFlow 测试。

当我尝试从 CodeRush 测试运行器或 NUnit GUI (v2.5.10) 运行测试时,有 67 个测试出现异常:

Orchard.Specs.AdditionFeature.AnonymousUserCanSeeTheHomePageButNotTheDashboard:
System.UnauthorizedAccessException : 访问路径
'C:\Users\richard.slater\AppData\Local\Temp\Orchard.Specs\5dchvodt.b1i\Modules\
Orchard.Packaging\Views\.svn\all-wcprops' 被拒绝。
在 System.IO.__Error.WinIOError(Int32 错误代码,字符串可能全路径)
在 System.IO.File.InternalCopy(字符串源文件名,字符串 destFileName,布尔覆盖)
在 C:\Project\Damovo.co.uk_NEW\src\Orchard.Specs\Util\PathExtensions.cs:line 51 中的 Orchard.Specs.Util.PathExtensions.FileCopy(Path sourcePath, Path targetPath, Path sourceFile)
在 C:\Project\Damovo.co.uk_NEW\src\Orchard.Specs\Util\PathExtensions.cs:line 22 中的 Orchard.Specs.Util.PathExtensions.c__DisplayClass1.b__0(路径文件)
在 Bleroy.FluentPath.PathCollection.ForEach(Action`1 动作)
在 C:\Project\Damovo.co.uk_NEW\src\Orchard.Specs\Util\PathExtensions.cs:line 20 中的 Orchard.Specs.Util.PathExtensions.DeepCopy(Path sourcePath, Path targetPath)
在 C:\Project\Damovo.co.uk_NEW\src\Orchard.Specs\Hosting\WebHost.cs:line 202 中的 Orchard.Specs.Hosting.WebHost.CopyExtension(String extensionFolder, String extensionName, ExtensionDeploymentOptions deploymentOptions)
在 C:\Project\Damovo.co.uk_NEW\src\Orchard.Specs\Bindings\WebAppHosting.cs:line 132 中的 Orchard.Specs.Bindings.WebAppHosting.GivenIHaveModule(String moduleName)
在 C:\Project\Damovo.co.uk_NEW\src\Orchard.Specs\Bindings\WebAppHosting.cs:line 161 中的 Orchard.Specs.Bindings.WebAppHosting.GivenIHaveACleanSiteWith(String virtualDirectory, Table table)
在 C:\Project\Damovo.co.uk_NEW\src\Orchard.Specs\Bindings\OrchardSiteFactory.cs:line 23 中的 Orchard.Specs.Bindings.OrchardSiteFactory.GivenIHaveInstalledOrchard(String virtualDirectory)
在 C:\Project\Damovo.co.uk_NEW\src\Orchard.Specs\Bindings\OrchardSiteFactory.cs:line 16 中的 Orchard.Specs.Bindings.OrchardSiteFactory.GivenIHaveInstalledOrchard()
在 TechTalk.SpecFlow.Bindings.MethodBinding.InvokeAction(对象 [] 参数,ITestTracer testTracer,时间跨度和持续时间)
在 TechTalk.SpecFlow.TestRunner.ExecuteStepMatch(BindingMatch 匹配,对象 [] 参数)
在 TechTalk.SpecFlow.TestRunner.ExecuteStep(StepArgs stepArgs)
在 TechTalk.SpecFlow.TestRunner.CollectScenarioErrors()
在 c:\Project\Damovo.co.uk_NEW\src\Orchard.Specs\PermissionModel.feature:line 28 中的 Orchard.Specs.AdditionFeature.AnonymousUserCanSeeTheHomePageButNotTheDashboard()

我曾尝试以管理员身份执行测试,但是我了解 SpecFlow 的真正知识,所以我怀疑我遗漏了一些关键的东西。

4

1 回答 1

1

看起来它正在尝试访问隐藏的 Subversion 文件夹 (.svn),但它们根本无法访问。可能的原因有:

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

弄乱内部 .svn 文件可能很危险,并且会损坏您签出的存储库文件夹。我不知道 SpecFlow 是否在此过程中修改了这些文件 - 如果没有,那很好

还有一个解决方案可以将存储库文件(通过 TortoiseSVN 导出选项)导出到单独的文件夹(不会复制与 SVN 相关的内容),在副本上完成所有工作,并且每次您想提交时 - 副本已更改文件返回到 SVN 绑定文件夹。

于 2011-05-24T11:48:56.427 回答