hadoop-common-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chris Nauroth (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HADOOP-13446) Support running isolated unit tests separate from AWS integration tests.
Date Sun, 21 Aug 2016 16:42:20 GMT

    [ https://issues.apache.org/jira/browse/HADOOP-13446?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15429790#comment-15429790

Chris Nauroth commented on HADOOP-13446:

Steve and Aaron, thank you for your reviews.  I plan to commit this later.

bq. How does mvn verify differ from mvn integration-test, which is what I've had an alias
for integration testing in the past?

There is some information on this in the Maven documentation on [Introduction to the Build
in particular the "Lifecycle Reference" and the section on "Some Phases Are Not Usually Called
From the Command Line".  The integration testing workflow is different from the unit testing
workflow in that there are additional phases guaranteed to execute before and after: pre-integration-test,
integration-test, post-integration-test and verify.  Typically, pre-integration-test is used
for external environment bootstrapping (e.g. start a web server), integration-test runs the
tests, post-integration-test tears down the external environment (e.g. stop a web server)
and verify is used for post-testing analysis (e.g. code coverage tools like Cobertura).

For what I've implemented here in hadoop-aws, we're not really doing anything in those additional
phases.  In practice, there won't really be much difference between running integration-test
vs. verify.  Still, running verify is the standard practice, so I chose to document it that
way.  In theory, we could take advantage of those additional phases someday, such as automatic
test bucket creation and deletion in pre-integration-test and post-integration-test.  We might
even be able to do fancy post-validation work by binding custom actions to verify that check
test results for your new performance metrics and plot them.

bq. with this patch, hadoop-aws unit tests will always run —its now only the IT tests which
are skipped if there's no auth-keys.xml. Correct?

Yes, that is correct.  You can see which tests Jenkins ran in the last pre-commit test report:


Admittedly, this is not very much, but it's a start.

I do not see this ever replacing our policy to run all integration tests before contributing
or committing a patch, because there is too much risk that mock-based tests don't accurately
simulate integration with the real service.

> Support running isolated unit tests separate from AWS integration tests.
> ------------------------------------------------------------------------
>                 Key: HADOOP-13446
>                 URL: https://issues.apache.org/jira/browse/HADOOP-13446
>             Project: Hadoop Common
>          Issue Type: Sub-task
>          Components: fs/s3
>            Reporter: Chris Nauroth
>            Assignee: Chris Nauroth
>         Attachments: HADOOP-13446-HADOOP-13345.001.patch, HADOOP-13446-HADOOP-13345.002.patch,
HADOOP-13446-HADOOP-13345.003.patch, HADOOP-13446.004.patch, HADOOP-13446.005.patch
> Currently, the hadoop-aws module only runs Surefire if AWS credentials have been configured.
 This implies that all tests must run integrated with the AWS back-end.  It also means that
no tests run as part of ASF pre-commit.  This issue proposes for the hadoop-aws module to
support running isolated unit tests without integrating with AWS.  This will benefit S3Guard,
because we expect the need for isolated mock-based testing to simulate eventual consistency
behavior.  It also benefits hadoop-aws in general by allowing pre-commit to do something more

This message was sent by Atlassian JIRA

To unsubscribe, e-mail: common-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-issues-help@hadoop.apache.org

View raw message