2017-11-13 7 views
0

I가 다음 단위 테스트를 테스트합니다. 출력은 다음과 같습니다.메이븐하지 발견 ScalaTest 장치는

[INFO] --- maven-surefire-plugin:2.7:test (default-test) @ project-name --- 
[INFO] Tests are skipped. 
[INFO] 
[INFO] --- scalatest-maven-plugin:1.0:test (test) @ project-name --- 
Discovery starting. 
Discovery completed in 202 milliseconds. 
Run starting. Expected test count is: 0 
DiscoverySuite: 
Run completed in 236 milliseconds. 
Total number of tests run: 0 
Suites: completed 1, aborted 0 
Tests: succeeded 0, failed 0, canceled 0, ignored 0, pending 0 
No tests were executed. 

출력이 표시 될 때마다 저는 maven에 scalatest 플러그인을 사용하고 있습니다. 여기 내 pom.xml 파일의 관련 섹션 :

<!-- disable surefire --> 
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.7</version> 
    <configuration> 
     <skipTests>true</skipTests> 
    </configuration> 
</plugin> 
<!-- enable scalatest --> 
<plugin> 
    <groupId>org.scalatest</groupId> 
    <artifactId>scalatest-maven-plugin</artifactId> 
    <version>1.0</version> 
    <configuration> 
     <reportsDirectory>${project.build.directory}/scalatest-reports</reportsDirectory> 
     <junitxml>junit</junitxml> 
     <filereports>report.txt</filereports> 
    </configuration> 
    <executions> 
     <execution> 
      <id>test</id> 
      <goals> 
       <goal>test</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

내가 설정이 물건을 얻기에 아주 새로운 해요, 그래서 검사 아니에요 다른 일이 있는지 확실하지 않습니다. 나는 maven을 깨끗하게하고 maven 테스트를 실행하면 똑같은 결과를 얻는다. ScalaTest 버전 3.0.1을 사용하고 있습니다. 3.0.1을 사용하여 성공적으로 실행되는 테스트가있는 또 다른 프로젝트가 있습니다 (두 프로젝트간에 원격으로 관련이있는 모든 것을 복사했습니다).

답변

0

은 물론, 문제는 관련라고 생각하지 않았다 몇 가지 정보를 막아야 것 같다, 그래서 그것을 내 원래의 게시물에 포함되지 않았다.

내가 쓴 소스 코드는 단위 테스트 용 도구이므로 my.cool.package.testUtilities 네임 스페이스에 넣었습니다. 단위 테스트는 my.cool.package.testUtilities.test입니다. 소스 코드를 testUtilities (단지 my.cool.package)으로 옮기고 테스트를 단지 my.cool.package.test으로 옮기면 테스트가 발견됩니다.

Java 생태계 (Java의 새로운 기능)에 익숙하지 않아 테스트 러너와 예상치 못한 버그가 있는지, 새 네임 스페이스로 파일을 옮기는 행위가 그렇지 않으면 네임 스페이스 자체는 부적합합니다. 그래서 나는 이것으로부터 배운 것을 확신하지 못합니다.

0

<skipTest> true </skipTest>은 테스트 사례 건너 뛰기에 사용되었습니다. 그래서 기본적으로 당신은 확실한을 비활성화하고 그것을 위해 사용됩니다

확실한 플러그인

응용 프로그램의 단위 테스트를 실행하는 빌드 라이프 사이클의 테스트 단계에서 사용된다. 당신은을 제공해야

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.18.1</version> 
    <configuration> 
     <useFile>false</useFile> 
     <disableXmlReport>true</disableXmlReport> 
     <!-- If you have classpath issue like NoDefClassError,...--> 
     <!-- useManifestOnlyJar>false</useManifestOnlyJar --> 
     <includes> 
      <include>**/*Test.*</include> 
      <include>**/*Suite.*</include> 
      <include>**/*Spec.*</include> 
     </includes> 
    </configuration> 
</plugin> 

에서을 포함한다 : 그것은 두 개의 서로 다른 파일 형식을 일반 텍스트 파일 (.txt)로 XML 파일 (.XML)와 치어가

업데이트에 보고서를 생성 테스트 파일의 확장자이며 플러그인의 버전을 변경할 수 있습니다.

감사

+0

이 변경은'scalatest-maven-plugin'을 사용하는 대신 모든 테스트에 주석을 달 것을 요구합니다. 나는 다른 프로젝트가 성공적으로 테스트를 찾을 수 있기 때문에 메이븐 플러그인이 작동한다는 것을 알고있다. – Max

+0

그런 경우에는 pom에 다른 설정이 있어야하므로 가능한 모든 설정을 확인해야합니다. 가능한 경우 설정을 공유하여 볼 수 있습니다. – Learner

+0

나는 게시물에서'pom.xml'의 관련 섹션이라고 생각하는 것을 가지고 있습니다 -보고 싶은 다른 섹션이 있습니까? 관련 정보를 포함 할 수있는 다른 파일이 있습니까? – Max