Java 使用本地仿真器测试PubsubIO读取
我能够设置Java 使用本地仿真器测试PubsubIO读取,java,unit-testing,google-cloud-dataflow,google-cloud-pubsub,Java,Unit Testing,Google Cloud Dataflow,Google Cloud Pubsub,我能够设置TestPipeline和PubsubIO来使用Pubsub模拟器: options = TestPipeline.testingPipelineOptions().as(PubsubOptions.class); options.setPubsubRootUrl(pubsubUrl); 但问题是如何在单元测试时绑定PubsubIO.readMessages(),以实际进行有限测试: final PCollection<PubsubMessage> pColl
TestPipeline
和PubsubIO
来使用Pubsub
模拟器:
options = TestPipeline.testingPipelineOptions().as(PubsubOptions.class);
options.setPubsubRootUrl(pubsubUrl);
但问题是如何在单元测试时绑定PubsubIO.readMessages()
,以实际进行有限测试:
final PCollection<PubsubMessage> pCollection =
pipeline.apply(PubsubIO.readMessagesWithAttributes().fromTopic("some-topic"));
PAssert.that(pCollection).satisfies(pubsubMessages -> {
pubsubMessages.forEach(System.out::println);
return null;
});
pipeline.run();
final PCollection PCollection=
apply(PubsubIO.readMessagesWithAttributes().fromTopic(“某些主题”));
满足(pubsubMessages->{
pubsubessages.forEach(System.out::println);
返回null;
});
pipeline.run();
我正在用Direct runner使用
google cloud dataflow java sdk all
version2.1.0
,据我所知,这目前是不可能的(我同意,这是非常不幸的)
对于Dataflow runner,您最好的选择可能是在一段时间后以编程方式启动管道上的排水。对于Direct runner,据我所知,这目前是不可能的(我同意,这是非常不幸的) 使用Dataflow runner,最好的选择可能是在一段时间后以编程方式启动管道上的排水