首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scalatest maven插件: ERROR:-c已被废弃很长时间,不再受支持

Scalatest maven插件: ERROR:-c已被废弃很长时间,不再受支持
EN

Stack Overflow用户
提问于 2016-10-06 14:40:43
回答 1查看 1.1K关注 0票数 0

我使用的是最有规模的插件最新的1.0版本,以及这里的源代码。尝试并行运行我的套件并使用以下配置:

代码语言:javascript
复制
<build><plugin>
    <groupId>org.scalatest</groupId>
    <artifactId>scalatest-maven-plugin</artifactId>
    <version>1.0</version> 
    <configuration>
        <reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory>
        <junitxml>.</junitxml>
        <filereports>WDF TestSuite.txt</filereports>
        <htmlreporters>${project.build.directory}/html/scalatest</htmlreporters>                    
        <parallel>true</parallel>
    </configuration>
    <executions>
        <execution>
            <id>test</id>
            <goals>
                <goal>test</goal>
            </goals>
        </execution>
    </executions>
</plugin></build>

导致以下Maven构建错误:

代码语言:javascript
复制
[INFO]
[INFO] --- scalatest-maven-plugin:1.0:test (test) @ myproject ---
Exception in thread "ScalaTest-main" java.lang.IllegalArgumentException: ERROR: -c has been deprecated for a very long time and is no longer supported, to prepare for reusing it for a different purpos
e in the near future. Please change all uses of -c to -P.
        at org.scalatest.tools.ArgsParser$.checkArgsForValidity(ArgsParser.scala:46)
        at org.scalatest.tools.Runner$.runOptionallyWithPassFailReporter(Runner.scala:857)
        at org.scalatest.tools.Runner$.main(Runner.scala:827)
        at org.scalatest.tools.Runner.main(Runner.scala)

基本上,最有规模的插件是将-c传递给最有规模的CLI,而不是正确的-P。或者更好的-P10,即要使用的线程数。

如何通过Maven将-P10传递给最有规模的进程?我已经尝试过在MAVEN_OPTS环境变量或Maven CLI中直接设置它,但是它没有被选中。

我还尝试过像这样配置最有规模的maven插件:

代码语言:javascript
复制
<configuration>
    <argLine>-P10</argLine>
</configuration>

但是这个参数被传递给java进程,而不是Scalatest,所以它也失败了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-06 20:38:52

我创建了我自己的刀叉,修复了并行问题,并将其版本化为1.1快照--我还必须修复构建等等--所有这些都被破坏了。我包括了一个直接可下载的编译tarball版本1.1-SNAPSHOT.tar.gz

然后对其进行测试,分叉的我自己版本的scala示例使用我自己的刀叉并修改了最大规模的示例代码,以显示加载每个套件的线程Id和执行每个套件的第一次测试的线程Id。我还让当前线程在这些点中的每一个点上睡觉,随机时间最长可达10秒,以查看发生了什么。所有规模最大的套件都由一个线程加载,如果启用并行,则并行执行。

这是使用<parallel>false</parallel>的结果

代码语言:javascript
复制
[INFO] --- scalatest-maven-plugin:1.1-SNAPSHOT:test (test) @ scala-maven-testing ---
Discovery starting.
** loading 'net.lockney.AcceptanceTest' Suite with ThreadId=1
==> executing 'Simple thing state' test with ThreadId=1
** loading 'net.lockney.MatcherExampleSuite' Suite with ThreadId=1
** loading 'net.lockney.SimpleSpec' Suite with ThreadId=1
** loading 'net.lockney.SimpleSuite' Suite with ThreadId=1
Discovery completed in 19 seconds, 98 milliseconds.
Run starting. Expected test count is: 8
AcceptanceTest:
As a user 
I want to be able to create a simple thing and implicitly start it 
So that I can then turn it off 
And see that it is stopped 
Feature: Simple thing state
  Scenario: User stops thing when it's already on
    Given An initialized thing, that has not been started 
    When User stops it again 
    Then We should see that it is stopped 
==> executing 'equality' test with ThreadId=1
MatcherExampleSuite:
- equality
==> executing 'SimpleObject' should 'accept a String' test with ThreadId=1
- string matchers *** FAILED ***
  "something" did not end with substring "some" (MatcherExampleSuite.scala:29)
SimpleSpec:
SimpleObject
- should accept a String
- should even accept really long Strings
==> executing 'An empty Set should have size 0' test with ThreadId=1
...
Run completed in 28 seconds, 300 milliseconds.
Total number of tests run: 8
Suites: completed 5, aborted 0
Tests: succeeded 6, failed 2, canceled 0, ignored 0, pending 0
*** 2 TESTS FAILED ***

这是使用<parallel>true</parallel><parallelThreads>10</parallelThreads>的结果。

代码语言:javascript
复制
[INFO] --- scalatest-maven-plugin:1.1-SNAPSHOT:test (test) @ scala-maven-testing ---
Discovery starting.
** loading 'net.lockney.AcceptanceTest' Suite with ThreadId=1
==> executing 'Simple thing state' test with ThreadId=1
** loading 'net.lockney.MatcherExampleSuite' Suite with ThreadId=1
** loading 'net.lockney.SimpleSpec' Suite with ThreadId=1
** loading 'net.lockney.SimpleSuite' Suite with ThreadId=1
Discovery completed in 30 seconds, 904 milliseconds.
Run starting. Expected test count is: 8
MatcherExampleSuite:
SimpleSuite:
AcceptanceTest:
SimpleSpec:
SimpleObject
As a user 
I want to be able to create a simple thing and implicitly start it 
So that I can then turn it off 
And see that it is stopped 
Feature: Simple thing state
==> executing 'An empty Set should have size 0' test with ThreadId=13
==> executing 'SimpleObject' should 'accept a String' test with ThreadId=12
==> executing 'equality' test with ThreadId=11
...
Run completed in 40 seconds, 706 milliseconds.
Total number of tests run: 8
Suites: completed 5, aborted 0
Tests: succeeded 6, failed 2, canceled 0, ignored 0, pending 0
*** 2 TESTS FAILED ***
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39898963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档