Devs,
   While working on integrating and testing the work Yu did for
NIFI-774/DeleteS3Object, I noticed that a few of the unit tests for the
processors in that AWS bundle(Put and Fetch S3) actually interact with S3
directly, and were marked as @Ignore.  If I wanted to un @Ignore them and
actually run them I needed to set up an AWS account, then copy the
credentials into an aws-credentials.properties file and put that in my home
directory to get the tests to pass.  This dashed my hopes of a relatively
simple merge and turned it into a bit of work for me.  I'm not blaming Yu
or anyone for this, just wanted to open up a discussion on better ways of
solving this.

Problem:
@Ignore'd tests don't get run, probably ever.  Why?  Because running them
is a pain in the butt, I agree with NIFI-438[1] "If tests could talk they
would say don't @Ignore me".  I appreciate that there are special
circumstances for using this, but it would probably benefit everyone if we
sure we used it only for the truly special circumstances.


Solutions:
a. Run these tests using the failsafe plugin[2] instead of the surefire
plugin.  This way they get run every time, and if they fail that
information gets reported but it does not stop the build.
b. Mock out the service(I appreciate that this may not always be possible)
c. Provide instructions somewhere so that someone with no experience with
these processors/tests can run them.

Anyone have thoughts on this?
My votes would be B, and if that is not possible A and C.

Thanks,
Dan

[1] https://issues.apache.org/jira/browse/NIFI-438
[2] https://maven.apache.org/surefire/maven-failsafe-plugin/

Reply via email to