【问题标题】:How do I determine which test is hanging?如何确定哪个测试挂起?
【发布时间】:2020-02-08 18:45:38
【问题描述】:

我有一个挂起的测试...当我尝试从 Maven 运行测试时,它总是以 ManagedLedgerTest 结束,如下所示:

[INFO] Running org.apache.bookkeeper.client.PulsarMockReadHandle
[INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.028 s - in org.apache.bookkeeper.client.PulsarMockReadHandle
[INFO] Running org.apache.zookeeper.MockZooKeeper
[INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.063 s - in org.apache.zookeeper.MockZooKeeper
[INFO] Tests run: 73, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 23.832 s - in org.apache.bookkeeper.mledger.impl.ManagedLedgerTest

几小时后,日志看起来还是一样。当我在 ManagedLedgerTest 中运行测试时,它们都通过了。所以,在 ManagedLedgerTest 之后似乎有一个测试它正在挂起。 当我将代码推送到我们的构建服务器时,我们看到了完全相同的行为。 我尝试通过添加 -X 参数来增加详细程度从 Maven 运行测试,如下所示: mvn install -DfailIfNoTests=false '-Dtest=!KafkaProducerSimpleConsumerTest,!PrimitiveSchemaTest,!BlobStoreManagedLedgerOffloaderTest' -pl '!pulsar-broker,!pulsar-proxy,!pulsar-brokeruth-sasl,!pulsar-io/kafka-connect-adaptor,!tests/pulsar-storm-test' -X

但是,我没有收到任何关于挂起的内容的其他信息。 (当提供-X 时,上面的输出是相同的。)

如何确定挂起的测试?

【问题讨论】:

    标签: java maven testing intellij-idea testng


    【解决方案1】:
    1. 方式: 使用远程调试开始测试,查看surefire-documentation,如何做到这一点。

    当测试挂起时,附加一个调试器(intellij、netbeans、eclipse...)并查看堆栈跟踪。

    1. 方式: 创建运行测试的 java-vm 的 stackdump(使用 jstack)。这些堆栈之一应该显示您的悬挂测试。

    【讨论】:

      猜你喜欢
      • 2019-05-18
      • 2014-04-15
      • 2013-04-12
      • 1970-01-01
      • 1970-01-01
      • 2022-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多