{"id":22302670,"url":"https://github.com/dataoneorg/dataone-integration","last_synced_at":"2025-10-07T14:25:18.881Z","repository":{"id":172924528,"uuid":"649964577","full_name":"DataONEorg/dataone-integration","owner":"DataONEorg","description":"DataONE Integration Testing framework","archived":false,"fork":false,"pushed_at":"2025-01-29T01:38:01.000Z","size":2640,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-03-26T00:28:25.310Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DataONEorg.png","metadata":{"files":{"readme":"README.txt","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-06T03:13:08.000Z","updated_at":"2023-06-06T04:03:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"484ea516-880a-4592-ab2c-c4b8db318a4f","html_url":"https://github.com/DataONEorg/dataone-integration","commit_stats":null,"previous_names":["dataoneorg/dataone-integration"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/DataONEorg/dataone-integration","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataONEorg%2Fdataone-integration","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataONEorg%2Fdataone-integration/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataONEorg%2Fdataone-integration/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataONEorg%2Fdataone-integration/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DataONEorg","download_url":"https://codeload.github.com/DataONEorg/dataone-integration/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataONEorg%2Fdataone-integration/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265573544,"owners_count":23790459,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-03T18:40:45.022Z","updated_at":"2025-10-07T14:25:18.786Z","avatar_url":"https://github.com/DataONEorg.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"====\n    This work was created by participants in the DataONE project, and is\n    jointly copyrighted by participating institutions in DataONE. For\n    more information on DataONE, see our web site at http://dataone.org.\n\n      Copyright ${year}\n\n    Licensed under the Apache License, Version 2.0 (the \"License\");\n    you may not use this file except in compliance with the License.\n    You may obtain a copy of the License at\n\n      http://www.apache.org/licenses/LICENSE-2.0\n\n    Unless required by applicable law or agreed to in writing, software\n    distributed under the License is distributed on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n    See the License for the specific language governing permissions and\n    limitations under the License.\n\n    $Id: README.txt 2498 2010-10-27 18:53:33Z jones $\n====\n\nDataONE Java Integration Testing\n--------------------------------\nThe d1_integration package is the default home for all integration tests for DataONE, \nas well as deployable testing apparatus for running certain integration test from the web\n(the WebTester).  As a result, both unit tests for the testing apparatus and integration \ntests are part of this maven project.  \n\nThis package supports test execution from 5 main environments:\n    a) Eclipse\n    b) the commandline (via mvn)\n    c) from our continuous integration server, Jenkins\n    d) from a web browser (via deployment of the MNWebTester .war)\n         - the default configuration for web tests only runs a subset \n           of tests (\"MNodeTier\" tests), but theoretically can run others.\n    e) running the WebTester locally using an embedded Jetty server.\n\nIt currently supports execution of java-based tests and plans to support running\nthe python tests in the future.  Except when running via Eclipse, the surefire maven \nplugin is used, producing xml reports with execution details. For web tests, the\nhtml output is produced by custom code listening in on a test run.\n  \n\nUsage:\n------\nUsage for this package follows the Maven WAR packaging lifecycle.  The following\ngoals do useful things:\n\n * mvn test      - used to run the unit tests\n * mvn package   - used to build the MNWebTester WAR file.\n * mvn verify    - used to run the integration tests\n \nJava integration testing options are described fully at:\n        http://maven.apache.org/plugins/maven-failsafe-plugin/examples/single-test.html\n\nExamples: \n running one integration test:             mvn -Dit.test={pathlessTestName} verify\n running multiple tests:                   mvn -Dit.test=*Core* verify\n \nHowever: specifying methods within the class is supposed to work, \n    but doesn't in practice for reasons unknown.  For example the following\n    will NOT work:\n    \n    running one method in integration test:   mvn -Dit.test={pathlessTestName}#{method} verify\n    running subset of methods in test:        mvn -Dit.test=someTest#*get*\n\n\nDeploying MNWebTester\n---------------------\nTo deploy a new MNWebTester, do the following:\n1. commit changes to svn\n2. perform 'svn update'              to bring the revision number up-to-date on you local copy\n3. optional:  perform 'mvn clean'    to remove old builds\n4. perform 'mvn package'             to build the war file\n5. scp target/MNWebTester{_some_version_and_revision}.war mncheck.test.dataone.org:\n6. ssh to mncheck.test.dataone.org\n7. sudo cp MNWebTester{...}.war /var/lib/tomcat6/webapps\n\nNote: The pom contains some ant commands that don't work in the shell-less environment \nthat Hudson uses when it runs mvn commands, so auto deploy of the MNWebTester doesn't\ncurrently work on Hudson.\n\n\n\nRunning the WebTester Locally\n-----------------------------\nIn addition to running the WebTester from mncheck.test.dataone.org, those who want\nmore control can run the WebTester locally using its embedded Jetty web server.  All\nthat is needed is a Java runtime, Subversion and Maven(3) installed, and a browser.\nYou will not need to work with java code.\n\nThis option lets you start and stop the server and cancel jobs, but gives you the\nsame functionality and UI as the WebTester DataONE maintains on mncheck.test.dataone.org.  \nYou will also have access to the log messages the webapp produces.\n\nFor *NIX OS's\n\n1. install subversion if necessary\n\n2. install maven if necessary\n\n3. install a Java JDK if necessary (compiling the tests via maven requires a JDK)\n\n4. checkout this project, if necessary, either the development branch (/trunk) \n   or a released branch (/branches/D1_INTEGRATION_v[X].[Y]\n   For example:\n      svn co https://repository.dataone.org/software/cicore/trunk/d1_integration\n      svn co https://repository.dataone.org/software/cicore/branches/D1_INTEGRATION_v1.1\n      \n5. from the checked-out d1_integration top-level directory, build the .war file (the web app)\n      $ mvn package\n      \n6. run the MNWebTester:\n      $ java -jar target/MNWebTester_\u003csome version and build number\u003e.war\n      \n      # this starts an embedded jetty server that will be listening on port 6680 \n      \n7. run / connect to the MNWebTester by pointing your browser to\n\n     http://localhost:6680\n     \n     Note: If you get an exception that tells you there was a problem compiling with javac\n     and a full JDK is required instead of a JRE, you may need to change your java config\n     to make sure the JDK is enabled and to disable JREs, or do step 6 with this parameter:\n     \n     java -jar -Dorg.apache.jasper.compiler.disablejsr199=true target/MNWebTester_\u003csome version and build number\u003e.war\n     \n8. from the browser page, enter the url of the Member Node you wish to test, and\n   choose the tests you wish to run.\n\n\nYou can stop the server with ^C or through a telnet command to a listener on the adjacent port:\n\n      $ telnet localhost 6681\n      \u003ctap return key again after issuing the command above\u003e\n\n\nRunning the WebTester tests locally\n-----------------------------------\nFor those more comfortable running maven tests from the command line, you can also\ncheck out the d1_integration project and run the tests through the command line.\nNote: for v1.x d1_integration checkouts, tests are organized by Tier, but in v2 \nwe reorganized the tests into API names, for greater flexibility.\n\nFor example: \n   \n   mvn -Dcontext.mn.baseurl=https://mn.foo.org/mn -Dit.test=MNodeTier1IT verify\n   mvn -Dcontext.mn.baseurl=https://mn.foo.org/mn -Dit.test=MNodeTier* verify\n   \n   or for v2:\n   mvn -Dcontext.mn.baseurl=https://mn.foo.org/mn -Dit.test=MNCore* verify\n   mvn -Dcontext.mn.baseurl=https://mn.foo.org/mn -Dit.test=MNRead* verify\n   \nIn the examples above, the baseurl and test sets are specified with -D options,\nand both are necessary.  The verify is the life-cycle goal maven is given that\nwill initiate building, unit testing, packaging, and lastly run the integration \ntests matching the pattern you specify.\n\nAll of the WebTester tests are organized in the project under:\n  \n  v1: src/test/java/org/dataone/integration/it/MNodeTier*\n  v2: src/test/java/org/dataone/integration/it/apiTests/MN*\n\nAdditionally, Tier2 and above tests make use of a set of client certificates when making \napi calls.  These need to be downloaded separately and installed on the machine\nfrom where the tests are being run.  Please contact support@dataone.org to request\nthese certificates.\n\nthe property (and default value) that controls where the libclient will look for these is:\n\n  d1.test.cert.location=/etc/dataone/client/testClientCerts/\n\nInstallation involves securing that path so that it is private to the user running\nthe tests, THEN extracting the certificates into the directory. The following shows\nthe starting tar file and the extracted directory.  Note that this entire directory\nis secured by removing any permissions for group or other.  (chmod 700 .)\n\n 0 drwx------   6 me  staff    204 May 21 11:49 .\n 0 drwxr-xr-x  68 me  staff   2312 May 21 10:06 ..\n 8 lrwxr-xr-x   1 me  staff     24 May 21 11:49 testClientCerts -\u003e testClientCerts-20120518\n 0 drwxr-xr-x  12 me  staff    408 May 18 23:09 testClientCerts-20120518\n48 -rw-r--r--   1 me  staff  23360 May 21 11:48 testClientCerts-20120518.tgz\n\nFor more advanced local setups, please contact the dataone core team for advice\nand additional context properties.\n\n\n\nNotes for further development:\n------------------------------\nIntegration tests are defined as tests that require infrastructure beyond the current\npackage and it's dependencies.  This would include functional and use case tests, but\nnot the unit tests that typically must pass before committing the code.\n\n* Regarding local tomcat deployment, see:\nhttp://mojo.codehaus.org/tomcat-maven-plugin/deployment.html\n\n* Regarding python integration\nhttp://steveberczuk.blogspot.com/2009/12/continuous-integration-of-python-code.html\nhttps://github.com/jacek99/maven-python-mojos\nhttps://github.com/jacek99/maven-python-mojos/tree/master/maven-python-mojos/maven-python-distribute-plugin/\n\n\n* Integration Testing strategies as related to maven and continuous integration \n(old proposals prior to failsafe plugin, I believe)\nhttp://docs.codehaus.org/display/MAVENUSER/Maven+and+Integration+Testing\nhttp://docs.codehaus.org/display/MAVEN/Testing+Strategies\nhttp://docs.codehaus.org/display/MAVEN/best+practices+-+testing+strategies\n\n\nhttp://garbuz.com/2010/07/31/maven-2-deploying-project-sources/\n\nGeneral TO DOs\n--------------\n1. tie pyunit testing into maven lifecycle.\n  a). what about python dependency management?  \n      http://nathanmarz.com/blog/introducing-nanny-a-really-simple-dependency-management-tool.html","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdataoneorg%2Fdataone-integration","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdataoneorg%2Fdataone-integration","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdataoneorg%2Fdataone-integration/lists"}