{ "info": { "author": "jianbing", "author_email": "326333381@qq.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: Implementation :: CPython" ], "description": "### dup\n\n* dup\u4e3b\u8981utx\u7684\u4fee\u6539\uff0c\u5bf9\u7531python3.5\u7684\u652f\u6301\u8f6c\u6362\u4e3apython2.7\n * \u652f\u6301Python2.7\n\n\n* \u5b89\u88c5dup \n\n ```\n pip install dup\n ```\n\n* \u529f\u80fd\u5217\u8868\n * \u7528\u4f8b\u6392\u5e8f\uff0c\u53ea\u9700\u8981\u5bfc\u5165dup\u5e93\uff0c\u7528\u4f8b\u7684\u6267\u884c\u987a\u5e8f\u5c31\u4f1a\u548c\u7f16\u5199\u987a\u5e8f\u4e00\u81f4\n * \u7528\u4f8b\u81ea\u5b9a\u4e49\u6807\u7b7e\uff0c\u53ef\u4ee5\u5bf9\u6d4b\u8bd5\u7528\u4f8b\u6307\u5b9a\u591a\u4e2a\u6807\u7b7e\u3002\n \u76ee\u524d\u5168\u90e8\u7528\u4f8b\u9ed8\u8ba4\u5e26\u6709`FULL`\u6807\u7b7e\uff0c\u672a\u6307\u5b9a\u6807\u7b7e\u7684\u7528\u4f8b\uff0c\u9ed8\u8ba4\u5e26\u6709`SMOKE`\u548c`FULL`\u4e24\u4e2a\u6807\u7b7e\u3002\n\n* \u793a\u4f8b\n\n ```py\n @unique\n class Tag(Enum):\n SMOKE = 1 # \u5192\u70df\u6d4b\u8bd5\u6807\u8bb0\uff0c\u53ef\u4ee5\u91cd\u547d\u540d\uff0c\u4f46\u662f\u4e0d\u8981\u5220\u9664\n FULL = 1000 # \u5b8c\u6574\u6d4b\u8bd5\u6807\u8bb0\uff0c\u53ef\u4ee5\u91cd\u547d\u540d\uff0c\u4f46\u662f\u4e0d\u8981\u5220\u9664\n\n # \u4ee5\u4e0b\u5f00\u59cb\u4e3a\u6269\u5c55\u6807\u7b7e\uff0c\u81ea\u884c\u8c03\u6574\n SP = 2\n ```\n\n ```py\n class TestLegion(unittest.TestCase):\n\n @tag(Tag.SMOKE)\n def test_create_legion(self):\n pass\n\n @tag(Tag.SP, Tag.FULL)\n def test_quit_legion(self):\n \"\"\"\u9000\u51fa\u519b\u56e2\n\n :return:\n \"\"\"\n print(\"\u5427\u5566\u5566\u5566\u5566\u5566\u5566\")\n assert 1 == 2\n ```\n\n* \u8fd0\u884c\u6307\u5b9a\u6807\u7b7e\u7684\u6d4b\u8bd5\u7528\u4f8b\n\n ```py\n from dup import *\n\n if __name__ == '__main__':\n setting.run_case = {Tag.SMOKE} # \u53ea\u8fd0\u884cSMOKE\u5192\u70df\u7528\u4f8b\n runner = TestRunner()\n runner.add_case_dir(r\"testcase\")\n runner.run_test(report_title='\u63a5\u53e3\u81ea\u52a8\u5316\u6d4b\u8bd5\u62a5\u544a')\n ```\n\n* \u6570\u636e\u9a71\u52a8 \n\n ```py\n class TestLegion(unittest.TestCase):\n\n @data([\"gold\", 100], [\"diamond\", 500])\n def test_bless(self, bless_type, award):\n print(bless_type)\n print(award)\n\n @data(10001, 10002, 10003)\n def test_receive_bless_box(self, box_id):\n \"\"\" \u9886\u53d6\u7948\u798f\u5b9d\u7bb1\n\n :return:\n \"\"\"\n print(box_id)\n\n* \u9ed8\u8ba4\u4f1a\u89e3\u5305\u6d4b\u8bd5\u6570\u636e\u6765\u4e00\u4e00\u5bf9\u5e94\u51fd\u6570\u53c2\u6570\uff0c\u53ef\u4ee5\u4f7f\u7528unpack=False\uff0c\u4e0d\u8fdb\u884c\u89e3\u5305 \n\n\t```py\n\tclass TestBattle(unittest.TestCase):\n\t @data({\"gold\": 1000, \"diamond\": 100}, {\"gold\": 2000, \"diamond\": 200}, unpack=False)\n\t def test_get_battle_reward(self, reward):\n\t \"\"\" \u9886\u53d6\u6218\u6597\u5956\u52b1\n\n\t :return:\n\t \"\"\"\n\t print(reward)\n\t print(\"\u83b7\u5f97\u7684\u94bb\u77f3\u6570\u91cf\u662f\uff1a{}\".format(reward['diamond']))\n\t ```\n\n* \u68c0\u6d4b\u7528\u4f8b\u662f\u5426\u7f16\u5199\u4e86\u7528\u4f8b\u63cf\u8ff0 \n\n ```\n 2017-11-13 12:00:19,334 WARNING legion.test_legion.test_bless\u6ca1\u6709\u7528\u4f8b\u63cf\u8ff0\n ```\n\n* \u6267\u884c\u6d4b\u8bd5\u65f6\uff0c\u663e\u793a\u6d4b\u8bd5\u8fdb\u5ea6 \n\n ```\n 2017-11-13 12:00:19,336 INFO \u5f00\u59cb\u8fdb\u884c\u6d4b\u8bd5\n\t2017-11-13 12:00:19,436 INFO Start to test legion.test_legion.test_create_legion (1/5)\n\t2017-11-13 12:00:19,536 INFO Start to test legion.test_legion.test_receive_bless_box (2/5)\n\t2017-11-13 12:00:19,637 INFO Start to test legion.test_legion.test_receive_bless_box (3/5)\n\t2017-11-13 12:00:19,737 INFO Start to test legion.test_legion.test_receive_bless_box (4/5)\n\t2017-11-13 12:00:19,837 INFO Start to test legion.test_legion.test_quit_legion (5/5)\n ```\n\n* setting\u7c7b\u63d0\u4f9b\u591a\u4e2a\u8bbe\u7f6e\u9009\u9879\u8fdb\u884c\u914d\u7f6e \n\n ```py\n class setting:\n\n # \u53ea\u8fd0\u884c\u7684\u7528\u4f8b\u7c7b\u578b\n run_case = {Tag.SMOKE}\n\n # \u5f00\u542f\u7528\u4f8b\u6392\u5e8f\n sort_case = True\n\n # \u6bcf\u4e2a\u7528\u4f8b\u7684\u6267\u884c\u95f4\u9694\uff0c\u5355\u4f4d\u662f\u79d2\n execute_interval = 0.1\n\n # \u5f00\u542f\u68c0\u6d4b\u7528\u4f8b\u63cf\u8ff0\n check_case_doc = True\n\n # \u663e\u793a\u5b8c\u6574\u7528\u4f8b\u540d\u5b57\uff08\u51fd\u6570\u540d\u5b57+\u53c2\u6570\u4fe1\u606f\uff09\n full_case_name = False\n\n # \u6d4b\u8bd5\u62a5\u544a\u663e\u793a\u7684\u7528\u4f8b\u540d\u5b57\u6700\u5927\u7a0b\u5ea6\n max_case_name_len = 80\n\n # \u6267\u884c\u7528\u4f8b\u7684\u65f6\u5019\uff0c\u663e\u793a\u62a5\u9519\u4fe1\u606f\n show_error_traceback = True\n\n # \u751f\u6210ztest\u98ce\u683c\u7684\u62a5\u544a\n create_ztest_style_report = True\n\n # \u751f\u6210bstest\u98ce\u683c\u7684\u62a5\u544a\n create_bstest_style_report = True\n ```\n\n* \u96c6\u6210 [ztest](https://github.com/zhangfei19841004/ztest) \u548c [BSTestRunner](https://github.com/easonhan007/HTMLTestRunner) \u81ea\u52a8\u751f\u6210\u4e24\u4efd\u6d4b\u8bd5\u62a5\u544a\uff0c\u611f\u8c22\u4e24\u4f4d\u4f5c\u8005\u7684\u6d4b\u8bd5\u62a5\u544a\u6a21\u7248\n\n* ztest\u98ce\u683c\n\n ![ztest\u98ce\u683c](https://github.com/jianbing/utx/raw/master/img/ztest.png)\n\n* bstest\u98ce\u683c\n\n ![bstest\u98ce\u683c](https://github.com/jianbing/utx/raw/master/img/bstest.png)\n\n* \u65e0\u7f1d\u63a5\u5165unittest\u9879\u76ee\uff0c\u5bfc\u5165utx\u5305\u5373\u53ef\u5f00\u59cb\u4f7f\u7528\u6269\u5c55\u529f\u80fd\uff0c\u65e0\u9700\u4fee\u6539\u4e4b\u524d\u7684\u4ee3\u7801\n\n## \u66f4\u65b0 1.1.1:\n\n \u53bb\u9664 \u8df3\u8fc7\u7528\u4f8b\u6570\uff0c\u589e\u52a0\u7528\u4f8b\u7a0b\u5e8f\u9519\u8bef\u6570\n\n## \u66f4\u65b01.1.2:\n\n \u66f4\u65b0\u5185\u5bb9:\n\n 1\u3001\u4fee\u590d\u5c55\u793a\u6587\u672c\u6ea2\u51fa\u65e0\u6cd5\u6536\u7f29\u7684\u95ee\u9898\n 2\u3001case \u589e\u52a0\u62a5\u544a\u8d1f\u8d23\u4eba\u5217\uff08\u9700\u8981\u5728 case \u7c7b\u6587\u4ef6\u6ce8\u91ca\u91cc \u589e\u52a0\u3010xx\u3011 xx \u3010\u3011\u4e3a\u4e2d\u6587\u7b26\u53f7 \u4ee3\u8868 case \u8d1f\u8d23\u4eba \uff09\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/jianbing/utx", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "dup", "package_url": "https://pypi.org/project/dup/", "platform": "", "project_url": "https://pypi.org/project/dup/", "project_urls": { "Homepage": "https://github.com/jianbing/utx" }, "release_url": "https://pypi.org/project/dup/1.1.4/", "requires_dist": [ "colorama", "enum34" ], "requires_python": "", "summary": "\u5bf9Python unittest\u7684\u529f\u80fd\u8fdb\u884c\u4e86\u6269\u5c55", "version": "1.1.4" }, "last_serial": 5321603, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "56856edd071abe97166d3ebb7954a0f8", "sha256": "1d103e1c285ccaf4c5852ddf2d78fa3c084f49f725cc5cfe1f7c03729e414b38" }, "downloads": -1, "filename": "dup-1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "56856edd071abe97166d3ebb7954a0f8", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 42568, "upload_time": "2018-03-17T06:24:36", "url": "https://files.pythonhosted.org/packages/92/0d/e4e7a98700f7a622877a1aec08f5bc2f21d05a8327e9ea6ea0db62e78d66/dup-1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "65f6ec673574aebbc5ea70462e3c1534", "sha256": "97e3223416e29e0292fd524753be9e12ca1b21b3aa2a63015ca461aeac677628" }, "downloads": -1, "filename": "dup-1.0.tar.gz", "has_sig": false, "md5_digest": "65f6ec673574aebbc5ea70462e3c1534", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39926, "upload_time": "2018-03-17T06:24:40", "url": "https://files.pythonhosted.org/packages/0c/a8/919526b5d2434cb9d0c9279384ba8fff36b6f1c03fa19bf6d447c28c8310/dup-1.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "a726b3b8a3e03e075810995f6017f091", "sha256": "dbae3f889f198a44d191ff24fb254d6abbc3b93957244f90b1c42f95a1ffe45d" }, "downloads": -1, "filename": "dup-1.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "a726b3b8a3e03e075810995f6017f091", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 42368, "upload_time": "2018-10-15T07:57:26", "url": "https://files.pythonhosted.org/packages/fe/20/c825655ee54e41eb0d05e51de9f64b1579691a8dc027b438396c776e5e6e/dup-1.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0b6ee83e51ad73edadd3b5f7b80db45d", "sha256": "474a8d70dd30d443bbc4d30a7f05b63a7b75990d75a76434314a81d6fd7a0225" }, "downloads": -1, "filename": "dup-1.0.1.tar.gz", "has_sig": false, "md5_digest": "0b6ee83e51ad73edadd3b5f7b80db45d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38688, "upload_time": "2018-10-15T07:57:28", "url": "https://files.pythonhosted.org/packages/2f/d1/a562f2e505ee9d632fe4e04bc6f09fc5a690fd6d02f0a25bfae043307734/dup-1.0.1.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "0693683a6d1b70c863e61e5f5f68e682", "sha256": "d28c81c488b2b436bcbe6bbc83b3525acc159832d4b17e6768a9fa27e0d352bb" }, "downloads": -1, "filename": "dup-1.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "0693683a6d1b70c863e61e5f5f68e682", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 42390, "upload_time": "2018-11-16T07:09:00", "url": "https://files.pythonhosted.org/packages/dd/3b/f7d1c4bb59e9f14cb9f74a3820e4fdd24ece42a04096b2cac7623a61102c/dup-1.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dcf264869a73b99a1c19778d25b058ef", "sha256": "d066edac6cb5b17e7568721af03ada1fd41f834a7d60e37f6f586009a73e3121" }, "downloads": -1, "filename": "dup-1.1.1.tar.gz", "has_sig": false, "md5_digest": "dcf264869a73b99a1c19778d25b058ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38716, "upload_time": "2018-11-16T07:09:02", "url": "https://files.pythonhosted.org/packages/01/db/df7924a6e363559b3ee04ea14891244a3340be294fc25fbca5fd6dad8ba3/dup-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "23e178c3f97d471e5d6bd69bce4bd67b", "sha256": "2d92729c5b75eaf0fd42cf755c3e41ab47c590733884f04e8cc573520550bdd5" }, "downloads": -1, "filename": "dup-1.1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "23e178c3f97d471e5d6bd69bce4bd67b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 42856, "upload_time": "2018-12-18T02:49:52", "url": "https://files.pythonhosted.org/packages/89/8c/77c20f79029cacd0224238cb0058e5ef5b3d37cc30dd8c1d96bf4345b475/dup-1.1.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eb50f4e1dcd329ae7fe56644840d5d1f", "sha256": "31207d9f99e55b1507ae5ee49b1549058ac75c108938df39e821436250c26bfe" }, "downloads": -1, "filename": "dup-1.1.2.tar.gz", "has_sig": false, "md5_digest": "eb50f4e1dcd329ae7fe56644840d5d1f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39059, "upload_time": "2018-12-18T02:49:55", "url": "https://files.pythonhosted.org/packages/35/f0/5953a005be7ae5d4b2d7701fa951605f1832503e221193e4e095902fcca9/dup-1.1.2.tar.gz" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "0e6799f913ba456310c748daa18e56a0", "sha256": "3980bb57b309834fd3150c91df86a01bfd8aeb6189572320a9022c11133a7839" }, "downloads": -1, "filename": "dup-1.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "0e6799f913ba456310c748daa18e56a0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 42982, "upload_time": "2019-03-25T10:36:56", "url": "https://files.pythonhosted.org/packages/80/ca/6e6167abf241ef674c491f616736c98805ef90b825d8b8e9fb4697e3dd37/dup-1.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e39b7cdabd6a325b1cac4f73b2daba94", "sha256": "a5b63481a4a07a6fb38ea737c735e6ad128b7f5f32b89e565cfeab62e29cfa5d" }, "downloads": -1, "filename": "dup-1.1.3.tar.gz", "has_sig": false, "md5_digest": "e39b7cdabd6a325b1cac4f73b2daba94", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39104, "upload_time": "2019-03-25T10:36:58", "url": "https://files.pythonhosted.org/packages/1f/4e/811cdb2de4ed960ac486dc93feb6203c77bbb77c5492dcf46345f7150178/dup-1.1.3.tar.gz" } ], "1.1.4": [ { "comment_text": "", "digests": { "md5": "85047b57d6638e68eaba6f8fb8a434bc", "sha256": "544fdc2eb78b291edbfec2d1fa63e4fe54ceb6de24dccb660a48b61c2d955643" }, "downloads": -1, "filename": "dup-1.1.4-py2-none-any.whl", "has_sig": false, "md5_digest": "85047b57d6638e68eaba6f8fb8a434bc", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 40950, "upload_time": "2019-05-27T09:42:48", "url": "https://files.pythonhosted.org/packages/86/e1/464b482cdf042b3da5d9ecc1ba17447a24cd0bf8163aea8d2e646dfcb8a3/dup-1.1.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d0ac6e4f437346aaf08e8f5f08d4a2de", "sha256": "c638f99a41fad0a548da2125291a5d84534a7ea2b8bc2ec98bc27419e5a042d9" }, "downloads": -1, "filename": "dup-1.1.4.tar.gz", "has_sig": false, "md5_digest": "d0ac6e4f437346aaf08e8f5f08d4a2de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40398, "upload_time": "2019-05-27T09:42:50", "url": "https://files.pythonhosted.org/packages/7b/74/5cb412c390ca72355f8924d34003c1f227cdd47fecf1d43f142eef21ea20/dup-1.1.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "85047b57d6638e68eaba6f8fb8a434bc", "sha256": "544fdc2eb78b291edbfec2d1fa63e4fe54ceb6de24dccb660a48b61c2d955643" }, "downloads": -1, "filename": "dup-1.1.4-py2-none-any.whl", "has_sig": false, "md5_digest": "85047b57d6638e68eaba6f8fb8a434bc", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 40950, "upload_time": "2019-05-27T09:42:48", "url": "https://files.pythonhosted.org/packages/86/e1/464b482cdf042b3da5d9ecc1ba17447a24cd0bf8163aea8d2e646dfcb8a3/dup-1.1.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d0ac6e4f437346aaf08e8f5f08d4a2de", "sha256": "c638f99a41fad0a548da2125291a5d84534a7ea2b8bc2ec98bc27419e5a042d9" }, "downloads": -1, "filename": "dup-1.1.4.tar.gz", "has_sig": false, "md5_digest": "d0ac6e4f437346aaf08e8f5f08d4a2de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40398, "upload_time": "2019-05-27T09:42:50", "url": "https://files.pythonhosted.org/packages/7b/74/5cb412c390ca72355f8924d34003c1f227cdd47fecf1d43f142eef21ea20/dup-1.1.4.tar.gz" } ] }