如何将 Fitnesse 页面添加到版本控制?

Posted

技术标签:

【中文标题】如何将 Fitnesse 页面添加到版本控制?【英文标题】:How do I add fitnesse pages to version-control? 【发布时间】:2008-10-30 08:33:28 【问题描述】:

推荐的做法是什么?我应该将 Fitnesse 文件夹下的 my 子文件夹添加到版本控制中吗?

背景:开发单个开发人员的 Rails 宠物项目。我的 rails 项目在版本控制 (Subversion) 下,但是我的 Fitnesse wiki 页面位于 Fitnesse 程序文件夹下。

Fitnesse 似乎有自己的版本控制...(我在每个 wiki 页面上都看到了带编号的 zips)它可靠吗?它在哪里存储修订?

【问题讨论】:

【参考方案1】:

使用-d 开关(这在谷歌搜索中出奇地低调

Fitnesse20081201>run -p 8080 -d c:/projects/MyProjectNeedsAcceptanceTests

这将在名为 FitnesseRoot 的指定文件夹中创建一个子文件夹(如果它尚不存在),其中包含运行所需的所有内容。

健身应该起来了。切换到您的浏览器。继续创建您的页面。

您创建的每个 Fitnesse 页面都有一个子文件夹。 每个文件夹都有一个content.txt(这是wiki 内容)和一个properties.xml(这是该页面的Fitnesse 属性)。 所有子页面都是父页面文件夹下的子文件夹。

目录和文件...您已为首次签入版本控制做好了准备。 还要设置您的版本控制以忽略某些类型的文件

FitnesseRoot/文件 FitnesseRoot/ErrorLog *.zip

(.zip 文件是 Fitnesse 跟踪 wiki 页面编辑的方式。短期本地版本控制。像 svn、git、cvs 等的 VCS 应该为我们解决这个问题。所以我们不需要签入 zip 文件)

希望这是有道理的。如果不是,我建议您花 15 分钟的时间来听听 UncleBob 本人的以下截屏视频来源: Robert Martin - Version Control and Development Environment for Fitnesse

【讨论】:

在 Windows 7 上,由于许多 FitNesse 文件的路径过长,此操作失败。无论如何要在本地安装 FitNesse 并让它引用不在 FitNesseRoot 下的文件夹位置中的测试套件? @Shire:我认为您的要求是可能的。我已经能够将常见的 FitNesse 文件与我的项目文件分开。常用文件,例如 Fitnesse-standalone.jar,位于一个文件夹 C:\FitNesse\ 中。我的项目文件位于他们自己的文件夹中,该文件夹有 2 个子文件夹:启动 FitNesse 的批处理文件和 FitNesseRoot 文件夹。批处理文件只有一行:java.exe -jar C:\FitNesse\fitnesse-standalone.jar -p 8090。我在项目 FitNesseRoot 文件夹中的***页面定义了测试运行器路径:!define TEST_RUNNER C:\FitNesse\FitSharp\Runner.exe 在我之前的评论中,环境变量对于避免向源代码管理添加路径很有用。所以批处理文件中启动 FitNesse 的命令可以是:java.exe -jar %FITNESSE_HOME%\fitnesse-standalone.jar -p 8090 -e 0。 TEST_RUNNER 可以定义为!define TEST_RUNNER $FITSHARP_HOME\Runner.exe。 FITNESSE_HOME 是一个指向 FitNesse 根目录的环境变量,该文件夹包含 Fitnesse-standalone.jar(在我的例子中是 C:\FitNesse)。 FITSHARP_HOME 是一个指向 FitSharp 文件夹的环境变量(在我的例子中是 C:\FitNesse\FitSharp)。【参考方案2】:

如果您在 Fitnesse 中使用版本控制,则无需为每个修订提供 zip 存档。使用 -e 0 选项阻止创建 zip 存档:

java -jar Fitnesse.jar -p 8001 -e 0

【讨论】:

感谢您提供更多信息! zip 文件会完全困扰我。【参考方案3】:

FitNesse 将每个页面的旧版本存储在一个 zip 文件中,该文件与页面文件位于同一目录中。 zip 文件名标记修订的时间戳。它的工作方式类似于*** - 历史,但不是完整的版本控制。

在我们公司,我们想要一个设置,每当我们检查源的(可能是旧的)修订版时,我们也会检查通过该特定版本的 FitNesse 测试。

因此,我们在版本控制的源代码树中安装了 FitNesse(fitnesse 目录,包括 FitNesse 可执行文件和 FitNesseRoot 目录),并设置了一条规则,在 FitNesseRoot 目录中不导入 *.zip(因为我们有版本控制为我们保留历史,不需要它们)。

这非常适用于健全的 SCM(我使用 svn w/svn-tortoise)。

当我们迁移到 Microsoft Foundation Server 源代码控制时,我们在签出-编辑-签入工作流程方面遇到了很多问题。话又说回来,这个工作流程一般来说是个坏主意,只能由疯狂的控制狂使用。

(编辑:回答评论者的问题)

【讨论】:

使用选项 -e 0 阻止压缩文件。 有一个用于Microsoft TFS 集成的插件:fitnessetfs.sourceforge.net 不过我还没有尝试过。【参考方案4】:

自 Fitnesse 20090214 版本以来,包括 CM 集成,有关详细信息,请参阅用户指南。 http://fitnesse.org/FitNesse.UserGuide.SourceCodeControl

git hub 插件包含在 Fitnesse 发行版中。

我在 http://code.google.com/p/perforcecmsystem/ 看到了一个 perforce 插件,但我的团队还没有这个设置。

【讨论】:

是的,但是文档没有告诉你如何使用它。它只是告诉你如何配置它。

以上是关于如何将 Fitnesse 页面添加到版本控制?的主要内容,如果未能解决你的问题,请参考以下文章

如何在最新的 FitNesse 版本“20140201”中输出测试表中的可点击链接

working with fitnesse wiki pages

git 如何忽略已经加入到版本控制的文件

SQL Server 2016 无法将系统版本控制添加到关系表

无法将核心数据文件添加到我现有的项目(版本控制问题)...?

Git存档将未版本控制的文件添加到子目录