繁体   English   中英

如何在Cucumber中暂存大量数据,等待,然后运行测试?

[英]How can I stage a LOT of data, wait, and then run tests in Cucumber?

我们有来自资产的消息,并且这些消息必须经过最多1分钟的过程,然后数据才能被测试到。 我们有1200个测试,因此您可以想象需要多长时间。

当前,我们正在使用JUnit 4,并在运行程序中使用“ @BeforeClass”方法来查找带有注释“ @Stager”的所有方法并运行它们。 然后我们等待,然后运行测试。 效果很好(到目前为止)。

我们想使用黄瓜,但是,我们需要它来:

  1. 舞台数据。
  2. 等待1或2分钟
  3. 运行测试。

有没有一种方法可以先运行所有“给定”方法,暂停1分钟,然后运行测试?

我们已经在Surefire中尝试了并行线程,但是似乎有问题,我们有1200个测试。 坦白说,有太多事情要做。 我们真的不需要并行运行。 分阶段的数据运行很快,测试运行很快。 这是每个测试之间的停顿,它是显示停止。

我们将考虑扩展黄瓜。 也许:

@RunWith(CucumberStage.class)

那里有什么可以做的吗? 有什么建议吗?

假设您正在使用maven运行测试。

如果您打算使用黄瓜的junit运行器,则可以继续使用现有逻辑在运行器的BeforeClass中设置数据。 如果您有一个跑步者,则更容易,您将需要在插件中设置执行顺序。 关于跳过给定方法,您可以将属性添加到surefire or failsafe plugin并在给定方法中使用它。

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.22.0</version>
        <configuration>                 
            <systemProperties>
                <property>
                    <name>skipproperty</name>
                    <value>myvaluetest</value>
                </property>
            </systemProperties>
        </configuration>
</plugin>

在Given方法中,您可以将此属性用作标记来跳过此步骤。 尽管这有点麻烦,但可以将其复制到所有设置方法中。 但是这样,您仍然可以将逻辑保留在给定方法内。 而且,如果您删除POM中的属性,黄瓜将以常规方式进行设置。

if(System.getProperty("skipproperty")!=null)
    return;

但是,如果您也想尝试使用TestNg,则可以使用maven exec plugin来运行安装代码。 这将使其独立于测试框架。 设置与上面相同,只是在POM中添加了exec插件。

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <version>1.6.0</version>
    <executions>
        <execution>
            <id>my-execution</id>
            <phase>process-test-classes</phase>
               <goals>
                    <goal>java</goal>
                </goals>
        </execution>
    </executions>
    <configuration>
            <mainClass>runner.ExecuteSetup</mainClass>
            <classpathScope>test</classpathScope>
    </configuration>
</plugin>

ExecuteSetup main()方法将包含调用设置代码的现有逻辑。 确保您添加了classpathscope否则您将获得一个奇怪的classnotfoundexception

我认为您只能在Cucumber中运行“所有给定”步骤,然后再运行其余步骤。 黄瓜将一步一步地执行所有步骤。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM