[英]Why doesn't JUnit test work in Play 2.3.1/Java project?
在我全新的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
可能是什么原因 ?
遇到没有找到测试的同一问题; activator clean
解决了这个问题。
它对我有用,因此您的问题需要更多细节才能找到有用的解决方案。
运行activator --version
来检查版本。 我的基础是sbt发射器0.13.5。
➜ sandbox activator --version
sbt launcher version 0.13.5
它没有说激活剂本身的版本(但激活剂1.2.x可能是0.13.5)。 升级如果您的年龄较大。
Ran 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
总而言之,它运作良好。 我不确定你的问题究竟是什么,因为我跟你的步骤一样严格,因为问题的描述是允许的。
当Eclipse运行时,带有activator clean
的解决方案有时不起作用。 关闭Eclipse然后然后将activator clean
,为我工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.