| ============= |
| Building |
| ============= |
| basic compilation: |
| > mvn clean compile test-compile |
| |
| Compile, run tests and produce jar |
| > mvn clean package |
| |
| ============= |
| Unit tests |
| ============= |
| Most of the tests will run without additional configuration. |
| For complete testing, configuration in src/test/resources is required: |
| |
| src/test/resources/azure-test.xml -> Defines Azure storage dependencies, including account information |
| |
| The other files in src/test/resources do not normally need alteration: |
| log4j.properties -> Test logging setup |
| hadoop-metrics2-azure-file-system.properties -> used to wire up instrumentation for testing |
| |
| From command-line |
| ------------------ |
| Basic execution: |
| > mvn test |
| |
| NOTES: |
| - The mvn pom.xml includes src/test/resources in the runtime classpath |
| - detailed output (such as log4j) appears in target\surefire-reports\TEST-{testName}.xml |
| including log4j messages. |
| |
| Run the tests and generate report: |
| > mvn site (at least once to setup some basics including images for the report) |
| > mvn surefire-report:report (run and produce report) |
| > mvn mvn surefire-report:report-only (produce report from last run) |
| > mvn mvn surefire-report:report-only -DshowSuccess=false (produce report from last run, only show errors) |
| > .\target\site\surefire-report.html (view the report) |
| |
| Via eclipse |
| ------------- |
| Manually add src\test\resources to the classpath for test run configuration: |
| - run menu|run configurations|{configuration}|classpath|User Entries|advanced|add folder |
| |
| Then run via junit test runner. |
| NOTE: |
| - if you change log4.properties, rebuild the project to refresh the eclipse cache. |
| |
| Run Tests against Mocked storage. |
| --------------------------------- |
| These run automatically and make use of an in-memory emulation of azure storage. |
| |
| |
| Running tests against the Azure storage emulator |
| --------------------------------------------------- |
| A selection of tests can run against the Azure Storage Emulator which is |
| a high-fidelity emulation of live Azure Storage. The emulator is sufficient for high-confidence testing. |
| The emulator is a Windows executable that runs on a local machine. |
| |
| To use the emulator, install Azure SDK 2.3 and start the storage emulator |
| See http://msdn.microsoft.com/en-us/library/azure/hh403989.aspx |
| |
| Enable the Azure emulator tests by setting |
| fs.azure.test.emulator -> true |
| in src\test\resources\azure-test.xml |
| |
| Known issues: |
| Symptom: When running tests for emulator, you see the following failure message |
| com.microsoft.windowsazure.storage.StorageException: The value for one of the HTTP headers is not in the correct format. |
| Issue: The emulator can get into a confused state. |
| Fix: Restart the Azure Emulator. Ensure it is v3.2 or later. |
| |
| Running tests against live Azure storage |
| ------------------------------------------------------------------------- |
| In order to run WASB unit tests against a live Azure Storage account, add credentials to |
| src\test\resources\azure-test.xml. These settings augment the hadoop configuration object. |
| |
| For live tests, set the following in azure-test.xml: |
| 1. "fs.azure.test.account.name -> {azureStorageAccountName} |
| 2. "fs.azure.account.key.{AccountName} -> {fullStorageKey}" |
| |
| ============= |
| Findbugs |
| ============= |
| Run findbugs and show interactive GUI for review of problems |
| > mvn findbugs:gui |
| |
| Run findbugs and fail build if errors are found: |
| > mvn findbugs:check |
| |
| For help with findbugs plugin. |
| > mvn findbugs:help |
| |
| ============= |
| Checkstyle |
| ============= |
| Rules for checkstyle @ src\config\checkstyle.xml |
| - these are based on a core set of standards, with exclusions for non-serious issues |
| - as a general plan it would be good to turn on more rules over time. |
| - Occasionally, run checkstyle with the default Sun rules by editing pom.xml. |
| |
| Command-line: |
| > mvn checkstyle:check --> just test & fail build if violations found |
| > mvn site checkstyle:checkstyle --> produce html report |
| > . target\site\checkstyle.html --> view report. |
| |
| Eclipse: |
| - add the checkstyle plugin: Help|Install, site=http://eclipse-cs.sf.net/update |
| - window|preferences|checkstyle. Add src/config/checkstyle.xml. Set as default. |
| - project|properties|create configurations as required, eg src/main/java -> src/config/checkstyle.xml |
| |
| NOTE: |
| - After any change to the checkstyle rules xml, use window|preferences|checkstyle|{refresh}|OK |
| |
| ============= |
| Javadoc |
| ============= |
| Command-line |
| > mvn javadoc:javadoc |