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/