【问题标题】:Teamcity directory dependency configuration for unit test用于单元测试的 Teamcity 目录依赖配置
【发布时间】:2015-08-10 20:29:24
【问题描述】:

我是 teamcity 的新手,需要一些依赖配置方面的帮助。在单元测试方法中,我必须通过调用Directory.SetCurrentDirectory(thePath) 来引用绝对目录路径;此目录包含来自另一个团队管理的另一个库的所有二进制包。出于自动化部署的目的,我们在源代码控制 (svn) 中为这个库创建了一个专用文件夹,这样每当我们升级这个库时,我们只需签入最新的更改,我们的自动化部署过程会将最新的库复制到生产服务器。

我们当前在 teamcity 中的构建步骤将这个库文件夹复制到一个工件文件夹中,我认为我可以在我的单元测试中引用这个工件文件夹路径,因为每次签入工件路径仅通过增加构建号和其余部分而有所不同的路径保持不变。因此,通过对所有构建的最后修改时间进行排序,可以轻松找到最新的构建号。但这不起作用,因为在 teamcity 完成构建和运行所有测试之前不会创建工件;因此我的测试将抛出一个FileNotFoundException,因为它引用了一个尚未创建的路径。

有人能解释一下如何配置这样的依赖吗? 如果问题不清楚,请告诉我。

【问题讨论】:

    标签: unit-testing svn teamcity


    【解决方案1】:

    一个选项是根据初始构建过程的成功完成创建第二个构建配置。然后,当触发第二次构建时,工件就可用(您将设置工件依赖项和完成构建触发器)。

    根据实际构建单元测试的方式,您可以使用 TeamCity 变量配置初始构建,以引用活动构建工作目录 (%teamcity.agent.work.dir%) 中的位置, 例如)。为了提供帮助,您可以检查 buildAgent/work 目录下的目录结构。

    如果有任何不清楚的地方请回复。

    【讨论】:

    • 感谢您,相信与否我有完全相同的想法,这就是我为解决问题所做的。我做了很多研究,但找不到更好的东西,特别是考虑到我仍在使用 Teamcity 7。我真正想要的另一件事是条件构建,因为与我们自己的代码库相比,我们引用的库更新频率较低,但我没有'认为至少在 Teamcity 7 中条件构建是不可能的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    • 1970-01-01
    • 2018-07-21
    • 1970-01-01
    • 2012-02-13
    • 1970-01-01
    相关资源
    最近更新 更多