scala代码上的maven测试返回成功构建但没有运行的测试

时间:2017-03-30 22:16:58

标签: scala maven testing

我有使用mvn test在我的maven scala代码中运行测试代码的问题。以下是设置:

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Bootstrap Example</title>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    </head>
    <body>
    <div class="container">
        <div class="row">
            <div class="col-sm-3 three-div">Works</div> <!-- no need for pulling left. BS does that already -->
            <div class="col-sm-6">Works</div>
            <div class="col-sm-3 two-div">Works</div> <!-- no need for pulling right -->
        </div>
        <div class="row">
            <div class="col-sm-3 two-div">Works</div>
            <div class="col-sm-3 three-div">Works</div>
        </div>
        <div class="row">
            <div class="col-sm-3 col-sm-offset-9">Works</div> <!-- use -offset-X to move your divs horizontally along the grid -->
        </div>
        <div class="row">    
           <div class="col-sm-6">:(</div>        
        </div>
    </div>
    </body>
</html>

JCudaMultiplyBy2.ptx是将在. ├── pom.xml ├── run └── src ├── main │   └── scala │   └── com │   └── myCompany │   └── scala │   └── MaxPrice.scala ├── resources │   └── JCudaMultiplyBy2.ptx └── test ├── resources │   └── JCudaMultiplyBy2.ptx └── scala └── MyTest.scala 中使用的文件 这是我的pom.xml:

MyTest.scala

MyTest.scala代码与MaxPrice.scala代码相同,如果我运行mvn compile然后运行mvn -q scala:run -DmainClass = com.myCompany.scala.MaxPrice -DaddArgs =“local [* ]“,它完美无缺。现在我将MaxPrice.scala的Object名称更改为MyTest,并将其文件名更改为MyTest.scala。将MyTest.scala放在src / test / scala下并运行mvn test,它不起作用并给出结果:

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.myCompany.scala</groupId>
  <artifactId>sparkExample</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>
  <properties>
    <scala.version>2.10.5</scala.version> <!-- Well we can use 2.11 scala, but scala-maven-plugin may have issue with that, so if to use mvn -q scala:run, then keep 2.10 scala, otherwise, have to spark-submit -->
  </properties>
  <dependencies>
    <dependency>
      <groupId>org.scala-lang</groupId>
      <artifactId>scala-library</artifactId>
      <version>${scala.version}</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.4</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.scala-tools</groupId>
      <artifactId>maven-scala-plugin</artifactId>
      <version>2.11</version>
    </dependency>
    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-core_2.10</artifactId>
      <version>1.6.1</version>
    </dependency>
    <dependency>
      <groupId>org.jcuda</groupId>
      <artifactId>jcuda</artifactId>
      <version>0.8.0</version>
    </dependency>
    <dependency>
      <groupId>org.jcuda</groupId>
      <artifactId>jcublas</artifactId>
      <version>0.8.0</version>
    </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>
        <executions>
          <execution>
            <goals>
              <goal>compile</goal>
              <goal>testCompile</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <scalaVersion>${scala.version}</scalaVersion>
          <args>
            <!--arg>-target:jvm-1.5</arg-->
          </args>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.8.1</version>
        <configuration>
                    <includes>
                        <include>**/*Spec.class</include>
                        <include>**/*Test.class</include>
                    </includes>
                </configuration>
      </plugin>
   </plugins>
  </build>
  <reporting>
    <plugins>
      <plugin>
        <groupId>org.scala-tools</groupId>
        <artifactId>maven-scala-plugin</artifactId>
        <configuration>
          <scalaVersion>${scala.version}</scalaVersion>
        </configuration>
      </plugin>
    </plugins>
  </reporting>
</project>

此外,如果我运行mvn test -Dtest = MyTest,它仍然会得到相同的结果:没有要运行的测试。

有人有想法吗?我搜索了很多但找不到答案,帮助!

1 个答案:

答案 0 :(得分:0)

显然,作者应使用scala-maven-plugin代替maven-scala-plugin(请参阅here)。

更重要的是,要运行scala测试,根据(全能)documentation,你应该禁用surefire插件:

  

要使用ScalaTest Maven插件,您需要禁用SureFire和   启用S​​calaTest。

添加surefire插件的配置部分:

<skipTests>true</skipTests>