为什么JUnit测试不能在Play 2.3.1 / Java项目中运行?

时间:2014-07-10 14:15:15

标签: java junit playframework junit4 playframework-2.3

在我全新的Play 2.3.1 Java应用程序中,我编写了第一个测试,但它们根本不起作用。我启动activator test,直接放在test目录中的默认包中的简单测试类尚未到达。

import org.junit.Assert;
import org.junit.Test;

public class TestTest {

    @Test
    public void testTest() {
        Assert.assertEquals(true, false);
    }
}

当我启动activator testOnly TestTest时,我有以下输出:

[info] Passed: Total 0, Failed 0, Errors 0, Passed 0
[info] No tests to run for test:testOnly
[success] Totaltime: 6 s, completed 11 juil. 2014 09:08:38

可能是什么原因?

3 个答案:

答案 0 :(得分:5)

遇到没有发现任何测试的同一问题; activator clean解决了这个问题。

答案 1 :(得分:1)

它对我有用,因此您的问题需要更多细节才能找到有用的解决方案。

运行activator --version以检查版本。我的基础是sbt发射器0.13.5。

➜  sandbox  activator --version
sbt launcher version 0.13.5

关于激活剂本身的版本并没有太多说明(但激活剂1.2.x可能是0.13.5)。如果您的年龄较大,请升级。

使用activator new my-brand-new-play-app play-java来创建Play / Java应用程序。

➜  sandbox  activator new my-brand-new-play-app play-java

Fetching the latest list of templates...

OK, application "my-brand-new-play-app" is being created using the "play-java" template.

To run "my-brand-new-play-app" from the command line, "cd my-brand-new-play-app" then:
/Users/jacek/sandbox/my-brand-new-play-app/activator run

To run the test for "my-brand-new-play-app" from the command line, "cd my-brand-new-play-app" then:
/Users/jacek/sandbox/my-brand-new-play-app/activator test

To run the Activator UI for "my-brand-new-play-app" from the command line, "cd my-brand-new-play-app" then:
/Users/jacek/sandbox/my-brand-new-play-app/activator ui

然后我将您的TestTest课程复制到test/TestTest.java,但没有任何更改:

➜  my-brand-new-play-app  cat test/TestTest.java
import org.junit.Assert;
import org.junit.Test;

public class TestTest {

    @Test
    public void testTest() {
    Assert.assertEquals(true, false);
    }
}

创建测试文件的唯一变化是,我运行了activator test。经过大量文件下载后,结果为:

➜  my-brand-new-play-app  activator test
[info] Loading global plugins from /Users/jacek/.sbt/0.13/plugins
[info] Loading project definition from /Users/jacek/sandbox/my-brand-new-play-app/project
[info] Set current project to my-brand-new-play-app (in build file:/Users/jacek/sandbox/my-brand-new-play-app/)
[info] ApplicationTest
[info] + ApplicationTest.simpleCheck
[info] + ApplicationTest.renderTemplate
[info]
[info]
[info] Total for test ApplicationTest
[info] Finished in 0.015 seconds
[info] 2 tests, 0 failures, 0 errors
[error] Test IntegrationTest.test failed: <''> should contain the String:<'Your new application is ready.'>, took 1.742 sec
[info] IntegrationTest
[info] x IntegrationTest.test
[error] sbt.ForkMain$ForkError: <''> should contain the String:<'Your new application is ready.'>
[error]     at org.fest.assertions.Fail.failure(Fail.java:228)
[error]     at org.fest.assertions.Assert.failure(Assert.java:149)
[error]     at org.fest.assertions.StringAssert.contains(StringAssert.java:73)
[error]     at IntegrationTest$1.invoke(IntegrationTest.java:23)
[error]     at IntegrationTest$1.invoke(IntegrationTest.java:20)
[error]     at play.test.Helpers.running(Helpers.java:549)
[error]     at play.test.Helpers.running(Helpers.java:536)
[error]     at IntegrationTest.test(IntegrationTest.java:20)
[info]
[info]
[info] Total for test IntegrationTest
[info] Finished in 0.005 seconds
[info] 1 tests, 1 failures, 0 errors
[error] Test TestTest.testTest failed: expected:<true> but was:<false>, took 0.0 sec
[info] TestTest
[info] x TestTest.testTest
[error] sbt.ForkMain$ForkError: expected:<true> but was:<false>
[error]     at org.junit.Assert.fail(Assert.java:88)
[error]     at org.junit.Assert.failNotEquals(Assert.java:743)
[error]     at org.junit.Assert.assertEquals(Assert.java:118)
[error]     at org.junit.Assert.assertEquals(Assert.java:144)
[error]     at TestTest.testTest(TestTest.java:8)
[info]
[info]
[info] Total for test TestTest
[info] Finished in 0.002 seconds
[info] 1 tests, 1 failures, 0 errors
[error] Failed: Total 4, Failed 2, Errors 0, Passed 2
[error] Failed tests:
[error]     IntegrationTest
[error]     TestTest
[error] (test:test) sbt.TestsFailedException: Tests unsuccessful
[error] Total time: 3 s, completed Jul 10, 2014 11:27:04 PM

TestTest测试确实已执行。

我还使用'testOnly TestTest'执行了TestTest,如下所示:

➜  my-brand-new-play-app  activator 'testOnly TestTest'
[info] Loading global plugins from /Users/jacek/.sbt/0.13/plugins
[info] Loading project definition from /Users/jacek/sandbox/my-brand-new-play-app/project
[info] Set current project to my-brand-new-play-app (in build file:/Users/jacek/sandbox/my-brand-new-play-app/)
[error] Test TestTest.testTest failed: expected:<true> but was:<false>, took 0.003 sec
[info] TestTest
[info] x TestTest.testTest
[error] sbt.ForkMain$ForkError: expected:<true> but was:<false>
[error]     at org.junit.Assert.fail(Assert.java:88)
[error]     at org.junit.Assert.failNotEquals(Assert.java:743)
[error]     at org.junit.Assert.assertEquals(Assert.java:118)
[error]     at org.junit.Assert.assertEquals(Assert.java:144)
[error]     at TestTest.testTest(TestTest.java:8)
[info]
[info]
[info] Total for test TestTest
[info] Finished in 0.012 seconds
[info] 1 tests, 1 failures, 0 errors
[error] Failed: Total 1, Failed 1, Errors 0, Passed 0
[error] Failed tests:
[error]     TestTest
[error] (test:testOnly) sbt.TestsFailedException: Tests unsuccessful
[error] Total time: 1 s, completed Jul 10, 2014 11:29:37 PM

总而言之,它运作良好。我不确定你的问题究竟是什么,因为我跟你的步骤一样严格地跟着问题的描述。

答案 2 :(得分:0)

当Eclipse运行时,activator clean的解决方案有时不起作用。关闭Eclipse然后执行activator clean然后为我工作。