Re: [External] Re: How to do test in Flink?

2018-08-24 Thread Joe Malt
Hi Chang,

A time-saving tip for finding which library contains a class: go to
https://search.maven.org/
and enter fc: followed by the fully-qualified name of the class. You should
get the library as a search result.

In this case for example, you'd search for
fc:org.apache.flink.runtime.operators.testutils.MockEnvironmentBuilder

Best,

Joe Malt
Engineering Intern, Stream Processing
Yelp Inc.

On Fri, Aug 24, 2018 at 4:50 AM, Chang Liu  wrote:

> No worries, I found it here:
>
> 
> org.apache.flink
> flink-runtime_${scala.binary.version}
> ${flink.version}
> test-jar
> test
> 
>
>
> Best regards/祝好,
>
> Chang Liu 刘畅
>
>
>
> On Fri, Aug 24, 2018 at 1:16 PM Chang Liu  wrote:
>
>> Hi Hequn,
>>
>> I have added the following dependencies:
>>
>> 
>> org.apache.flink
>> flink-streaming-java_${scala.binary.version}
>> ${flink.version}
>> test-jar
>> test
>> 
>> 
>> org.mockito
>> mockito-core
>> 2.21.0
>> test
>> 
>>
>>
>> But got the exception:   java.lang.NoClassDefFoundError:
>> org/apache/flink/runtime/operators/testutils/MockEnvironmentBuilder
>>
>> Do you know which library contains this class? Thanks :)
>>
>> Best regards/祝好,
>>
>> Chang Liu 刘畅
>> DevOps Engineer
>> WB TECH / Cyber Crime Prevention Team
>>
>> Mobile: +31(0)687859981
>> Email: fluency...@gmail.com  &  chang.l...@ing.nl
>>
>>
>>
>> On Mon, Aug 13, 2018 at 1:42 PM Hequn Cheng  wrote:
>>
>>> Hi Change,
>>>
>>> Try
>>> 
>>> org.apache.flink
>>> flink-streaming-java_2.11
>>> ${flink.version}
>>> test-jar
>>> test
>>> 
>>> .
>>>
>>> On Mon, Aug 13, 2018 at 6:42 PM, Chang Liu  wrote:
>>>
 And another question: which library should I include in order to use
 these harnesses? I do have this flink-test-utils_2.11 in my pom, but I
 cannot find the harnesses.

 I also have the following in my pom:

- flink-core
- flink-clients_2.11
- flink-scala_2.11
- flink-streaming-java_2.11
- flink-streaming-java_2.11
- flink-connector-kafka-0.11_2.11


 Best regards/祝好,

 Chang Liu 刘畅


 On 13 Aug 2018, at 04:01, Hequn Cheng  wrote:

 Hi Chang,

 There are some harness tests which can be used to test your function.
 It is also a common way to test function or operator in flink internal
 tests. Currently, the harness classes mainly include:

- KeyedOneInputStreamOperatorTestHarness
- KeyedTwoInputStreamOperatorTestHarness
- OneInputStreamOperatorTestHarness
- TwoInputStreamOperatorTestHarness

 You can take a look at the source code of these classes.

 To be more specific, you can take a look at the
 testSlidingEventTimeWindowsApply[1], in which the RichSumReducer
 window function has been tested.

 Best, Hequn

 [1] https://github.com/apache/flink/blob/master/flink-
 streaming-java/src/test/java/org/apache/flink/streaming/
 runtime/operators/windowing/WindowOperatorTest.java#L213


 On Mon, Aug 13, 2018 at 7:10 AM, Chang Liu 
 wrote:

> Dear all,
>
> I have some questions regarding testing in Flink. The more general
> question is: is there any guideline, template, or best practices that we
> can follow if we want to test our flink code (more in scala)?
>
> I know there is this page: https://ci.apache.org/
> projects/flink/flink-docs-release-1.6/dev/stream/testing.html but not
> so much written there. And I also did not find a more comprehensive
> documentation of this library: flink-test-utils_2.11.
>
> One detailed question: how do you test this WindowFunction below? The
> return type is Unit right? We cannot do unit test on like, like how the
> ReduceFunction was tested in the example link above. Then we only have the
> option of doing integration testing on it?
> 
>
>
> Your ideas would be very helpful :) Thanks in advance !
>
> Best regards/祝好,
>
> Chang Liu 刘畅
>
>
>


>>>


Re: How to do test in Flink?

2018-08-24 Thread Chang Liu
No worries, I found it here:


org.apache.flink
flink-runtime_${scala.binary.version}
${flink.version}
test-jar
test



Best regards/祝好,

Chang Liu 刘畅



On Fri, Aug 24, 2018 at 1:16 PM Chang Liu  wrote:

> Hi Hequn,
>
> I have added the following dependencies:
>
> 
> org.apache.flink
> flink-streaming-java_${scala.binary.version}
> ${flink.version}
> test-jar
> test
> 
> 
> org.mockito
> mockito-core
> 2.21.0
> test
> 
>
>
> But got the exception:   java.lang.NoClassDefFoundError:
> org/apache/flink/runtime/operators/testutils/MockEnvironmentBuilder
>
> Do you know which library contains this class? Thanks :)
>
> Best regards/祝好,
>
> Chang Liu 刘畅
> DevOps Engineer
> WB TECH / Cyber Crime Prevention Team
>
> Mobile: +31(0)687859981
> Email: fluency...@gmail.com  &  chang.l...@ing.nl
>
>
>
> On Mon, Aug 13, 2018 at 1:42 PM Hequn Cheng  wrote:
>
>> Hi Change,
>>
>> Try
>> 
>> org.apache.flink
>> flink-streaming-java_2.11
>> ${flink.version}
>> test-jar
>> test
>> 
>> .
>>
>> On Mon, Aug 13, 2018 at 6:42 PM, Chang Liu  wrote:
>>
>>> And another question: which library should I include in order to use
>>> these harnesses? I do have this flink-test-utils_2.11 in my pom, but I
>>> cannot find the harnesses.
>>>
>>> I also have the following in my pom:
>>>
>>>- flink-core
>>>- flink-clients_2.11
>>>- flink-scala_2.11
>>>- flink-streaming-java_2.11
>>>- flink-streaming-java_2.11
>>>- flink-connector-kafka-0.11_2.11
>>>
>>>
>>> Best regards/祝好,
>>>
>>> Chang Liu 刘畅
>>>
>>>
>>> On 13 Aug 2018, at 04:01, Hequn Cheng  wrote:
>>>
>>> Hi Chang,
>>>
>>> There are some harness tests which can be used to test your function. It
>>> is also a common way to test function or operator in flink internal tests.
>>> Currently, the harness classes mainly include:
>>>
>>>- KeyedOneInputStreamOperatorTestHarness
>>>- KeyedTwoInputStreamOperatorTestHarness
>>>- OneInputStreamOperatorTestHarness
>>>- TwoInputStreamOperatorTestHarness
>>>
>>> You can take a look at the source code of these classes.
>>>
>>> To be more specific, you can take a look at
>>> the testSlidingEventTimeWindowsApply[1], in which the RichSumReducer window
>>> function has been tested.
>>>
>>> Best, Hequn
>>>
>>> [1]
>>> https://github.com/apache/flink/blob/master/flink-streaming-java/src/test/java/org/apache/flink/streaming/runtime/operators/windowing/WindowOperatorTest.java#L213
>>>
>>>
>>> On Mon, Aug 13, 2018 at 7:10 AM, Chang Liu  wrote:
>>>
 Dear all,

 I have some questions regarding testing in Flink. The more general
 question is: is there any guideline, template, or best practices that we
 can follow if we want to test our flink code (more in scala)?

 I know there is this page:
 https://ci.apache.org/projects/flink/flink-docs-release-1.6/dev/stream/testing.html
  but
 not so much written there. And I also did not find a more comprehensive
 documentation of this library: flink-test-utils_2.11.

 One detailed question: how do you test this WindowFunction below? The
 return type is Unit right? We cannot do unit test on like, like how the
 ReduceFunction was tested in the example link above. Then we only have the
 option of doing integration testing on it?
 


 Your ideas would be very helpful :) Thanks in advance !

 Best regards/祝好,

 Chang Liu 刘畅



>>>
>>>
>>


Re: How to do test in Flink?

2018-08-24 Thread Chang Liu
Hi Hequn,

I have added the following dependencies:


org.apache.flink
flink-streaming-java_${scala.binary.version}
${flink.version}
test-jar
test


org.mockito
mockito-core
2.21.0
test



But got the exception:   java.lang.NoClassDefFoundError:
org/apache/flink/runtime/operators/testutils/MockEnvironmentBuilder

Do you know which library contains this class? Thanks :)

Best regards/祝好,

Chang Liu 刘畅
DevOps Engineer
WB TECH / Cyber Crime Prevention Team

Mobile: +31(0)687859981
Email: fluency...@gmail.com  &  chang.l...@ing.nl



On Mon, Aug 13, 2018 at 1:42 PM Hequn Cheng  wrote:

> Hi Change,
>
> Try
> 
> org.apache.flink
> flink-streaming-java_2.11
> ${flink.version}
> test-jar
> test
> 
> .
>
> On Mon, Aug 13, 2018 at 6:42 PM, Chang Liu  wrote:
>
>> And another question: which library should I include in order to use
>> these harnesses? I do have this flink-test-utils_2.11 in my pom, but I
>> cannot find the harnesses.
>>
>> I also have the following in my pom:
>>
>>- flink-core
>>- flink-clients_2.11
>>- flink-scala_2.11
>>- flink-streaming-java_2.11
>>- flink-streaming-java_2.11
>>- flink-connector-kafka-0.11_2.11
>>
>>
>> Best regards/祝好,
>>
>> Chang Liu 刘畅
>>
>>
>> On 13 Aug 2018, at 04:01, Hequn Cheng  wrote:
>>
>> Hi Chang,
>>
>> There are some harness tests which can be used to test your function. It
>> is also a common way to test function or operator in flink internal tests.
>> Currently, the harness classes mainly include:
>>
>>- KeyedOneInputStreamOperatorTestHarness
>>- KeyedTwoInputStreamOperatorTestHarness
>>- OneInputStreamOperatorTestHarness
>>- TwoInputStreamOperatorTestHarness
>>
>> You can take a look at the source code of these classes.
>>
>> To be more specific, you can take a look at
>> the testSlidingEventTimeWindowsApply[1], in which the RichSumReducer window
>> function has been tested.
>>
>> Best, Hequn
>>
>> [1]
>> https://github.com/apache/flink/blob/master/flink-streaming-java/src/test/java/org/apache/flink/streaming/runtime/operators/windowing/WindowOperatorTest.java#L213
>>
>>
>> On Mon, Aug 13, 2018 at 7:10 AM, Chang Liu  wrote:
>>
>>> Dear all,
>>>
>>> I have some questions regarding testing in Flink. The more general
>>> question is: is there any guideline, template, or best practices that we
>>> can follow if we want to test our flink code (more in scala)?
>>>
>>> I know there is this page:
>>> https://ci.apache.org/projects/flink/flink-docs-release-1.6/dev/stream/testing.html
>>>  but
>>> not so much written there. And I also did not find a more comprehensive
>>> documentation of this library: flink-test-utils_2.11.
>>>
>>> One detailed question: how do you test this WindowFunction below? The
>>> return type is Unit right? We cannot do unit test on like, like how the
>>> ReduceFunction was tested in the example link above. Then we only have the
>>> option of doing integration testing on it?
>>> 
>>>
>>>
>>> Your ideas would be very helpful :) Thanks in advance !
>>>
>>> Best regards/祝好,
>>>
>>> Chang Liu 刘畅
>>>
>>>
>>>
>>
>>
>


Re: How to do test in Flink?

2018-08-13 Thread Hequn Cheng
Hi Change,

Try

org.apache.flink
flink-streaming-java_2.11
${flink.version}
test-jar
test

.

On Mon, Aug 13, 2018 at 6:42 PM, Chang Liu  wrote:

> And another question: which library should I include in order to use these
> harnesses? I do have this flink-test-utils_2.11 in my pom, but I cannot
> find the harnesses.
>
> I also have the following in my pom:
>
>- flink-core
>- flink-clients_2.11
>- flink-scala_2.11
>- flink-streaming-java_2.11
>- flink-streaming-java_2.11
>- flink-connector-kafka-0.11_2.11
>
>
> Best regards/祝好,
>
> Chang Liu 刘畅
>
>
> On 13 Aug 2018, at 04:01, Hequn Cheng  wrote:
>
> Hi Chang,
>
> There are some harness tests which can be used to test your function. It
> is also a common way to test function or operator in flink internal tests.
> Currently, the harness classes mainly include:
>
>- KeyedOneInputStreamOperatorTestHarness
>- KeyedTwoInputStreamOperatorTestHarness
>- OneInputStreamOperatorTestHarness
>- TwoInputStreamOperatorTestHarness
>
> You can take a look at the source code of these classes.
>
> To be more specific, you can take a look at the
> testSlidingEventTimeWindowsApply[1], in which the RichSumReducer window
> function has been tested.
>
> Best, Hequn
>
> [1] https://github.com/apache/flink/blob/master/flink-
> streaming-java/src/test/java/org/apache/flink/streaming/
> runtime/operators/windowing/WindowOperatorTest.java#L213
>
>
> On Mon, Aug 13, 2018 at 7:10 AM, Chang Liu  wrote:
>
>> Dear all,
>>
>> I have some questions regarding testing in Flink. The more general
>> question is: is there any guideline, template, or best practices that we
>> can follow if we want to test our flink code (more in scala)?
>>
>> I know there is this page: https://ci.apache.org/pr
>> ojects/flink/flink-docs-release-1.6/dev/stream/testing.html but not so
>> much written there. And I also did not find a more comprehensive
>> documentation of this library: flink-test-utils_2.11.
>>
>> One detailed question: how do you test this WindowFunction below? The
>> return type is Unit right? We cannot do unit test on like, like how the
>> ReduceFunction was tested in the example link above. Then we only have the
>> option of doing integration testing on it?
>> 
>>
>>
>> Your ideas would be very helpful :) Thanks in advance !
>>
>> Best regards/祝好,
>>
>> Chang Liu 刘畅
>>
>>
>>
>
>


Re: How to do test in Flink?

2018-08-13 Thread Chang Liu
And another question: which library should I include in order to use these 
harnesses? I do have this flink-test-utils_2.11 in my pom, but I cannot find 
the harnesses.

I also have the following in my pom:
flink-core
flink-clients_2.11
flink-scala_2.11
flink-streaming-java_2.11
flink-streaming-java_2.11
flink-connector-kafka-0.11_2.11

Best regards/祝好,

Chang Liu 刘畅


> On 13 Aug 2018, at 04:01, Hequn Cheng  wrote:
> 
> Hi Chang,
> 
> There are some harness tests which can be used to test your function. It is 
> also a common way to test function or operator in flink internal tests. 
> Currently, the harness classes mainly include:
> KeyedOneInputStreamOperatorTestHarness
> KeyedTwoInputStreamOperatorTestHarness
> OneInputStreamOperatorTestHarness
> TwoInputStreamOperatorTestHarness
> You can take a look at the source code of these classes. 
> 
> To be more specific, you can take a look at the 
> testSlidingEventTimeWindowsApply[1], in which the RichSumReducer window 
> function has been tested.
> 
> Best, Hequn
> 
> [1] 
> https://github.com/apache/flink/blob/master/flink-streaming-java/src/test/java/org/apache/flink/streaming/runtime/operators/windowing/WindowOperatorTest.java#L213
>  
> 
> 
> 
> On Mon, Aug 13, 2018 at 7:10 AM, Chang Liu  > wrote:
> Dear all,
> 
> I have some questions regarding testing in Flink. The more general question 
> is: is there any guideline, template, or best practices that we can follow if 
> we want to test our flink code (more in scala)?
> 
> I know there is this page: 
> https://ci.apache.org/projects/flink/flink-docs-release-1.6/dev/stream/testing.html
>  
> 
>  but not so much written there. And I also did not find a more comprehensive 
> documentation of this library: flink-test-utils_2.11.
> 
> One detailed question: how do you test this WindowFunction below? The return 
> type is Unit right? We cannot do unit test on like, like how the 
> ReduceFunction was tested in the example link above. Then we only have the 
> option of doing integration testing on it?
> 
> 
> 
> Your ideas would be very helpful :) Thanks in advance !
> 
> Best regards/祝好,
> 
> Chang Liu 刘畅
> 
> 
> 



Re: How to do test in Flink?

2018-08-13 Thread Chang Liu
Hi Dawid,

Many Thanks :)

Best regards/祝好,

Chang Liu 刘畅


> On 13 Aug 2018, at 09:21, Dawid Wysakowicz  wrote:
> 
> Hi Chang,
> 
> Just to add to how you could test the function you've posted. The Collector 
> is an interface so you can just implement a stub that will keep the results 
> in e.g. some java collection. Then you can assert this collection. The 
> collector might look like this:
> 
> 
> class ListCollector[T](list: java.util.List[T]) extends Collector[T] {
> 
>   override def collect(record: T): Unit = {
> list.add(record)
>   }
> 
>   override def close(): Unit = {
>   }
> }
> 
> Best,
> 
> Dawid
> 
> 
> On 13/08/18 01:10, Chang Liu wrote:
>> Dear all,
>> 
>> I have some questions regarding testing in Flink. The more general question 
>> is: is there any guideline, template, or best practices that we can follow 
>> if we want to test our flink code (more in scala)?
>> 
>> I know there is this page: 
>> https://ci.apache.org/projects/flink/flink-docs-release-1.6/dev/stream/testing.html
>>  
>> 
>>  but not so much written there. And I also did not find a more comprehensive 
>> documentation of this library: flink-test-utils_2.11.
>> 
>> One detailed question: how do you test this WindowFunction below? The return 
>> type is Unit right? We cannot do unit test on like, like how the 
>> ReduceFunction was tested in the example link above. Then we only have the 
>> option of doing integration testing on it?
>> 
>> 
>> 
>> Your ideas would be very helpful :) Thanks in advance !
>> 
>> Best regards/祝好,
>> 
>> Chang Liu 刘畅
>> 
>> 
> 



signature.asc
Description: Message signed with OpenPGP


Re: How to do test in Flink?

2018-08-13 Thread Chang Liu
Hi Hequn,

Thanks fr your reply.

Just to understand, these harness tests and the example your provided is 
actually having the same concept of the integration test with the example given 
here 
(https://ci.apache.org/projects/flink/flink-docs-release-1.6/dev/stream/testing.html#integration-testing
 
)
 right ?

Harness tests provide more easy to use utils to construct source/sink and the 
execution environment.

Best regards/祝好,

Chang Liu 刘畅


> On 13 Aug 2018, at 04:01, Hequn Cheng  wrote:
> 
> Hi Chang,
> 
> There are some harness tests which can be used to test your function. It is 
> also a common way to test function or operator in flink internal tests. 
> Currently, the harness classes mainly include:
> KeyedOneInputStreamOperatorTestHarness
> KeyedTwoInputStreamOperatorTestHarness
> OneInputStreamOperatorTestHarness
> TwoInputStreamOperatorTestHarness
> You can take a look at the source code of these classes. 
> 
> To be more specific, you can take a look at the 
> testSlidingEventTimeWindowsApply[1], in which the RichSumReducer window 
> function has been tested.
> 
> Best, Hequn
> 
> [1] 
> https://github.com/apache/flink/blob/master/flink-streaming-java/src/test/java/org/apache/flink/streaming/runtime/operators/windowing/WindowOperatorTest.java#L213
>  
> 
> 
> 
> On Mon, Aug 13, 2018 at 7:10 AM, Chang Liu  > wrote:
> Dear all,
> 
> I have some questions regarding testing in Flink. The more general question 
> is: is there any guideline, template, or best practices that we can follow if 
> we want to test our flink code (more in scala)?
> 
> I know there is this page: 
> https://ci.apache.org/projects/flink/flink-docs-release-1.6/dev/stream/testing.html
>  
> 
>  but not so much written there. And I also did not find a more comprehensive 
> documentation of this library: flink-test-utils_2.11.
> 
> One detailed question: how do you test this WindowFunction below? The return 
> type is Unit right? We cannot do unit test on like, like how the 
> ReduceFunction was tested in the example link above. Then we only have the 
> option of doing integration testing on it?
> 
> 
> 
> Your ideas would be very helpful :) Thanks in advance !
> 
> Best regards/祝好,
> 
> Chang Liu 刘畅
> 
> 
> 



Re: How to do test in Flink?

2018-08-12 Thread vino yang
Hi Chang,

Regarding the return value type, Scala allows the method to not specify the
return value type, it can be inferred by the compiler, if you specify a
non-Unit type compiler will report an error, if you do not specify an
explicit type, the result of the method may be an error, test pass or not
pass. In this respect it does not have the clarity of Java. But there is no
doubt that its return value will not be adopted by Flink.

Chang Liu  于2018年8月13日周一 上午7:11写道:

> Dear all,
>
> I have some questions regarding testing in Flink. The more general
> question is: is there any guideline, template, or best practices that we
> can follow if we want to test our flink code (more in scala)?
>
> I know there is this page:
> https://ci.apache.org/projects/flink/flink-docs-release-1.6/dev/stream/testing.html
>  but
> not so much written there. And I also did not find a more comprehensive
> documentation of this library: flink-test-utils_2.11.
>
> One detailed question: how do you test this WindowFunction below? The
> return type is Unit right? We cannot do unit test on like, like how the
> ReduceFunction was tested in the example link above. Then we only have the
> option of doing integration testing on it?
>
>
>
> Your ideas would be very helpful :) Thanks in advance !
>
> Best regards/祝好,
>
> Chang Liu 刘畅
>
>
>


Re: How to do test in Flink?

2018-08-12 Thread Hequn Cheng
Hi Chang,

There are some harness tests which can be used to test your function. It is
also a common way to test function or operator in flink internal tests.
Currently, the harness classes mainly include:

   - KeyedOneInputStreamOperatorTestHarness
   - KeyedTwoInputStreamOperatorTestHarness
   - OneInputStreamOperatorTestHarness
   - TwoInputStreamOperatorTestHarness

You can take a look at the source code of these classes.

To be more specific, you can take a look at
the testSlidingEventTimeWindowsApply[1], in which the RichSumReducer window
function has been tested.

Best, Hequn

[1]
https://github.com/apache/flink/blob/master/flink-streaming-java/src/test/java/org/apache/flink/streaming/runtime/operators/windowing/WindowOperatorTest.java#L213


On Mon, Aug 13, 2018 at 7:10 AM, Chang Liu  wrote:

> Dear all,
>
> I have some questions regarding testing in Flink. The more general
> question is: is there any guideline, template, or best practices that we
> can follow if we want to test our flink code (more in scala)?
>
> I know there is this page: https://ci.apache.org/
> projects/flink/flink-docs-release-1.6/dev/stream/testing.html but not so
> much written there. And I also did not find a more comprehensive
> documentation of this library: flink-test-utils_2.11.
>
> One detailed question: how do you test this WindowFunction below? The
> return type is Unit right? We cannot do unit test on like, like how the
> ReduceFunction was tested in the example link above. Then we only have the
> option of doing integration testing on it?
>
>
>
> Your ideas would be very helpful :) Thanks in advance !
>
> Best regards/祝好,
>
> Chang Liu 刘畅
>
>
>