我正在学习Scala,并希望在Eclipse中设置集成单元测试。 据我在google搜索中可以看出,ScalaTest是可行的方法,可能与JUnit结合使用。
您在Eclipse中对Scala进行单元测试有哪些经验?我应该使用JUnit跑步者还是别的什么?
答案 0 :(得分:7)
ScalaIDE网站how to run Scala unit tests in Eclipse上有一个wiki页面。如果您在运行规范单元测试时遇到特定问题,我建议您在specs-users邮件列表上发布消息。
埃里克。
答案 1 :(得分:6)
我无法在eclipse中使用JUnit runner运行ScalaTest规范。我认为这是因为缺少@Test
注释方法。但是,如果您的项目具有Maven支持,则可以使用mvn test
从命令行运行规范。要使用Surefire插件检测您的规格,请在您的pom文件中使用以下配置。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
<includes>
<include>**/*Spec.class</include>
</includes>
</configuration>
</plugin>
查看these example以供参考。
答案 2 :(得分:5)
只是为了让答案保持最新:ScalaTest现在附带一个eclipse plugin,它可以处理从Eclipse开始运行的测试。
答案 3 :(得分:2)
我花了这么多天试图找到与我的项目的scala一起使用的单元测试的组合,这就是我发现的。
我正在使用Scala 2.8的候选版本,因为它修复了一些在2.7.2中阻止我的错误。我最初试图让Scalatest使用2.8,但无法找到一个稳定的解决方案,将来这可能是一个更好的方法,但目前在2.8版本中似乎有太大的变化。
我正在使用的配置是在我的scala测试代码中使用JUnit4注释,如下所示:
import org.junit._ import Assert._ class TestSuite{ @Test def testSimple(){ asserEquals("Equal",1,1) } }
然后我使用java JUnit测试套件一起运行我的所有测试:
import junit.framework.Test; import junit.framework.TestSuite; import org.junit.runner.RunWith; import org.junit.runners.Suite; @RunWith(Suite.class) @Suite.SuiteClasses( { TestSuite.class }) public class AllTests { public static Test suite() { TestSuite suite = new TestSuite("Test Suite"); return suite; } }
唯一的附加技巧是将输出目录添加为Eclipse中的源目录,以便JUnit运行器可以找到您的类文件。这有点像黑客,但似乎有效。
Project-&gt; Properties-&gt; Java Build Path-&gt; Source-&gt; Add Folder然后点击类(或bin,无论你在哪里编译类文件)。
通过右键单击AllTests.java并选择RunAs-&gt; Junit
,这在Eclipse中运行良好答案 4 :(得分:1)
我无法从Eclipse运行单元测试(不可否认我没有太努力),但是如果你愿意看看IntelliJ ScalaTest在IDE中运行没有问题。