Материал предоставлен https://it.rfei.ru

Настройка модульного тестирования

Модульное тестирование (unit testing) позволяет проверить на корректность отдельные модули исходного кода программы. Сами тесты пишутся на языке Scala с использованием библиотек, которые автоматизируют выполнение тестов, а также предоставляют DSL для их написания.

Мы будем использовать библиотеку ScalaTest версии 1.8 для DSL, а также JUnit версии 4.11 для запуска тестов. Узнать последние версии можно, просмотрев индекс центрального репозитория.

  1. Откройте pom.xml. В разделе <build> добавьте следующую строку после закрывающего тэга </sourceDirectory>:

    <testSourceDirectory>src/test/scala</testSourceDirectory>
  2. Найдите раздел <dependencies>, допишите следующий фрагмент перед закрывающим тэгом </dependencies>:

    <dependency>
      <groupId>org.scalatest</groupId>
      <artifactId>scalatest_2.10.0</artifactId>
      <version>1.8</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  3. В разделе <build><plugins> найдите плагин maven-scala-plugin и допишите следующий фрагмент перед закрывающим тэгом </executions>:

    <execution>
      <id>scala-test-compile</id>
      <phase>test-compile</phase>
      <goals>
        <goal>testCompile</goal>
      </goals>
    </execution>
  4. Сверьте Ваш pom.xml с образцом.

    pom.xml с конфигурацией модульного тестирования

    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                                 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
    
      <groupId>pro.savant.circa</groupId>
      <artifactId>blank</artifactId>
      <version>1.0-SNAPSHOT</version>
      <packaging>jar</packaging>
    
      <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      </properties>
    
      <dependencies>
        <dependency>
          <groupId>org.scala-lang</groupId>
          <artifactId>scala-library</artifactId>
          <version>2.10.0</version>
        </dependency>
        <dependency>
          <groupId>org.scalatest</groupId>
          <artifactId>scalatest_2.10.0</artifactId>
          <version>1.8</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.11</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
    
      <build>
        <sourceDirectory>src/main/scala</sourceDirectory>
        <testSourceDirectory>src/test/scala</testSourceDirectory>
        <plugins>
          <plugin>
            <groupId>org.scala-tools</groupId>
            <artifactId>maven-scala-plugin</artifactId>
            <version>2.15.2</version>
            <executions>
              <execution>
                <id>scala-compile</id>
                <phase>compile</phase>
                <goals>
                  <goal>compile</goal>
                </goals>
              </execution>
              <execution>
                <id>scala-test-compile</id>
                <phase>test-compile</phase>
                <goals>
                  <goal>testCompile</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>pro.savant.circumflex</groupId>
            <artifactId>maven-cx-plugin</artifactId>
            <version>3.0-RC1</version>
          </plugin>
        </plugins>
      </build>
    
    </project>
  5. Зафиксируйте работу в Git:

    git add -A
    git status
    git commit -m "Configured unit testing."
Scala ConsoleПодведение итогов