3

我正在使用 Intellij Idea 版本 12(终极版)。刚刚安装了 Team City(版本 8)。一个默认代理,在 linux 中运行。

我创建了一个非常简单的测试应用程序:

公共类主要{

    公共静态无效主要(字符串[]参数){
        System.out.println("Hello World!");
    }

    公共整数总和(整数 x,整数 y){
        返回 x+y;

    }
}

...和一个非常简单的测试...

导入 junit.framework.Assert;
导入 org.junit.Test;

公共类 MainTest {
    @测试
    公共无效 testSum() 抛出异常 {
        主要测试=新的主要();
        Assert.assertEquals("总和应该是 7",7,test.sum(4,4));
    }
}

如果我在 IntelliJ 中运行它,测试就会正常运行并失败。

相反,如果我提交这个项目并将其推送到 github,TeamCity 会看到更改并开始构建。构建很快失败,并出现以下错误:

/home/ctb/TeamCity/buildAgent/work/742505fa88794219/test/MainTest.java:1:包junit.framework不存在
导入 junit.framework.Assert;
                      ^
/home/ctb/TeamCity/buildAgent/work/742505fa88794219/test/MainTest.java:2:包org.junit不存在
导入 org.junit.Test;
                ^
/home/ctb/TeamCity/buildAgent/work/742505fa88794219/test/MainTest.java:12:找不到符号
符号:类测试
位置:类 MainTest
    @测试
         ^
/home/ctb/TeamCity/buildAgent/work/742505fa88794219/test/MainTest.java:15:找不到符号
符号:变量断言
位置:类 MainTest
        Assert.assertEquals("总和应该是 7。失败者!!",7,test.sum(4,4));
                ^

所以是的,我看到 TeamCity 没有看到 JUnit。

在 TeamCity 讨论论坛上,一位回答我的问题的人问我是否将 junit.jar 作为依赖项(模块或库)添加到构建中。它被列为模块依赖项,但我尝试将其作为库依赖项。我还尝试检查和取消检查导出并尝试编译和测试范围,但每次我得到相同的错误。我的运行配置是共享的。

我没有使用 Ant 或 Maven。也许有一天,但我想尽可能简单地开始。

显然,我遗漏了一些东西,但有关该主题的文档很少。

谢谢你。

4

1 回答 1

3

因此,我收到了 Jetbrains 技术支持的回复,为了完整起见并为其他人省去了麻烦,以下是我收到的回复:

似乎问题在于 junit.jar 没有放在您的项目下的版本控制中。为了在 TeamCity 代理上构建您的项目,理想情况下该项目应该是自包含的。在您的情况下, junit.jar 仅存在于您的本地计算机上,我想在所需位置的代理上没有此类文件。所以你实际上有两个选择:将 junit.jar 在版本控制下放入你的项目中,或者在 IDEA 中定义全局库并在 IDEA 项目运行器页面上配置这个全局库(必须启动检查/重新解析),然后将库文件放在所有您的构建将在其中执行的代理。就个人而言,我认为第一种方法更简单更好。

我将 junit 添加到版本控制中,现在构建在 TeamCity 中正常工作。

于 2013-08-16T14:50:06.253 回答