{"id":13622524,"url":"https://github.com/NetEase/arrow","last_synced_at":"2025-04-15T09:32:45.428Z","repository":{"id":14334329,"uuid":"17043879","full_name":"NetEase/arrow","owner":"NetEase","description":"A TestNG plugin with better test report template, re-run tests on failure, and many more.","archived":false,"fork":false,"pushed_at":"2018-05-31T05:42:08.000Z","size":917,"stargazers_count":96,"open_issues_count":4,"forks_count":67,"subscribers_count":36,"default_branch":"master","last_synced_at":"2024-04-13T23:44:00.530Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NetEase.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-02-21T03:04:01.000Z","updated_at":"2024-03-31T14:14:32.000Z","dependencies_parsed_at":"2022-09-02T12:20:22.796Z","dependency_job_id":null,"html_url":"https://github.com/NetEase/arrow","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NetEase%2Farrow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NetEase%2Farrow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NetEase%2Farrow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NetEase%2Farrow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NetEase","download_url":"https://codeload.github.com/NetEase/arrow/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223668211,"owners_count":17182893,"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-08-01T21:01:20.653Z","updated_at":"2024-11-08T10:30:27.548Z","avatar_url":"https://github.com/NetEase.png","language":"Java","funding_links":[],"categories":["Java"],"sub_categories":[],"readme":"## Introduction\r\n\r\nArrow is a TestNG plugin providing several intersting features mainly for QA engineers.\u003cbr\u003e\r\n\r\n[中文介绍](http://qa.blog.163.com/blog/static/1901470022014245230459/ \"中文介绍\")\r\n\r\n## Features\r\n\r\n* Integrate test class/method author from Javadoc into emailable HTML report\r\n* Re-run failed test cases\r\n\r\n## How to Use\r\n\r\n1、Add arrow.jar to project libs \u003cbr\u003e\r\n2、Add listeners in ant build.xml or testng.xml\r\n\r\n* build.xml add listeners sample\r\n\r\n```\r\n\u003ctarget name=\"testng\" depends=\"compile\"\u003e\r\n    \u003cmkdir dir=\"test-output\" /\u003e\r\n\t\u003ctestng outputDir=\"test-output\" classpathref=\"runpath\"\r\n\t\thaltonfailure=\"fasle\" listeners=\"com.netease.qa.testng.PowerEmailableReporter, \r\n\t\tcom.netease.qa.testng.RetryListener, com.netease.qa.testng.TestResultListener\"\u003e\r\n\t\t\u003cxmlfileset dir=\".\" includes=\"${testngxml}.xml\" /\u003e\r\n\t\u003c/testng\u003e\r\n\u003c/target\u003e\r\n```\r\n\r\n\r\n* testng.xml add listeners sample\r\n\r\n```\r\n\u003clisteners\u003e\r\n    \u003clistener class-name=\"com.netease.qa.testng.TestResultListener\" /\u003e\r\n    \u003clistener class-name=\"com.netease.qa.testng.RetryListener\" /\u003e\r\n    \u003clistener class-name=\"com.netease.qa.testng.PowerEmailableReporter\" /\u003e\r\n    \u003clistener class-name=\"com.netease.qa.testng.PowerXMLReport\" /\u003e\r\n\u003c/listeners\u003e\r\n```\r\n3、Add config.properties file in the root directory of your project\r\n\r\n* config.properties file sample\r\n\r\n```\r\nretrycount=1 #Not must be specified, default value is  0\r\nsourcecodedir=src #Not must be specified, default value is src\r\nsourcecodeencoding=UTF-8 #Not must be specified, default value is utf-8\r\n```\r\n\r\n\r\n## Contributors\r\n\r\n* NetEase, Inc.\r\n\r\n## How to Contribute\r\n\r\nAny contribution listed bellow is welcomed:\r\n\r\n* add/edit wiki\r\n* report/fix issue\r\n* code review\r\n* commit new feature\r\n* add testcase/demo\r\n\r\nMeanwhile it is recommended to follow the rules below:\r\n\r\n* It's *NOT* recommended to submit a pull request directly to Arrow's `master` branch. `develop` branch is more appropriate\r\n* Follow common Java coding conventions\r\n* Add the following [license](#license) in each Java class file\r\n\r\n## License\r\n\r\n(The Apache License)\r\n\r\nCopyright (c) 2012-2013 NetEase, Inc. and other contributors\r\n\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at\r\n\r\n       http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNetEase%2Farrow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FNetEase%2Farrow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNetEase%2Farrow/lists"}