Как вы unit test Scala в Eclipse?

Я изучаю Scala и хотел бы настроить интегрированное модульное тестирование в Eclipse. Насколько я могу судить по googling, ScalaTest - это путь, возможно, в сочетании с JUnit.

Каковы ваши опыты с модульным тестированием Scala в Eclipse? Должен ли я использовать бегун JUnit или что-то еще?

Ответы

Ответ 1

Просто для того, чтобы обновить ответы: ScalaTest теперь поставляется с плагином eclipse, который должен обрабатывать текущие тесты из Eclipse out-of- вне коробки.

Ответ 3

Мне не удалось запустить спецификации ScalaTest с помощью JUnit runner внутри eclipse. Я думаю, это связано с отсутствием аннотированных методов @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>

Отметьте этот пример для справки.

Ответ 4

Я провел последние несколько дней, пытаясь найти комбинацию модульных тестов, которые работают с scala для моего проекта, и это то, что я нашел.

Я использую кандидаты на выпуск для scala 2.8, потому что он исправляет ряд ошибок, которые блокировали меня в 2.7.2. Сначала я пытался заставить Scalatest работать с 2.8, но не смог найти стабильное решение, в будущем это может быть лучшим способом, но в настоящее время, похоже, слишком много происходит вокруг выпуска 2.8.

Конфигурация, с которой я работаю, заключается в использовании аннотаций JUnit4 в тестовом коде scala, например:

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- > Properties- > Java Build Path- > Source- > Add Folder и затем щелкните классы (или bin, где бы вы не компилировали ваши файлы классов).

Это отлично работает в Eclipse, щелкнув правой кнопкой мыши по AllTests.java и выбрав RunAs- > Junit

Ответ 5

Я не смог получить модульные тесты, запущенные из Eclipse (по общему признанию, я не слишком старался), но если вы хотите взглянуть на IntelliJ ScalaTest, работайте в среде IDE без проблем.