{ "info": { "author": "mocobk", "author_email": "mocobk@163.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# testfilter\nunittest \u7528\u4f8b\u6267\u884c\u8fc7\u6ee4\uff0c \u53ef\u9009\u62e9\u7528\u4f8b\u7ea7\u522b\u6216\u7528\u4f8b\u7ea7\u522b\u8fdb\u884c\u8fc7\u6ee4\n\n### \u5982\u4f55\u4f7f\u7528\u5b83?\n\n```shell\n>>> pip install testfilter\n```\n\n\n```python\n\nimport unittest\nfrom testfilter import runIf, Filter\n\n# \u8bbe\u7f6e\u6267\u884c\u73af\u5883 \u6267\u884c\u7ea7\u522b\nFilter.env = 'test' # test uat prod/production \u4e0d\u533a\u5206\u5927\u5c0f\u5199\nFilter.level = 'p2' # smoke/p1 p2 p3 p4 \u4e0d\u533a\u5206\u5927\u5c0f\u5199\n\n\nclass Demo(unittest.TestCase, metaclass=Filter.Meta):\n @runIf.env.NOT_PROD # \u975e\u6b63\u5f0f\u73af\u5883\u4e0b\u6267\u884c\n def test_001(self):\n self.assertEqual(1, 1)\n\n @runIf.env.TEST # \u4ec5\u5728\u6d4b\u8bd5\u73af\u5883\u4e0b\u6267\u884c\n def test_002(self):\n self.assertEqual(1, 1)\n\n @runIf.env.UAT\n @runIf.env.TEST\n @runIf.level_in.P3 # \u6d4b\u8bd5\u73af\u5883\u548c UAT \u73af\u5883\u4e0b\uff0c\u4e14\u7528\u4f8b\u4f18\u5148\u7ea7\u5728 P3 \u4ee5\u4e0a\u6267\u884c\n def test_003(self):\n self.assertEqual(1, 1)\n\n @runIf.level_in.SMOKE\n def test_004(self):\n self.assertEqual(1, 1)\n\n\nif __name__ == '__main__':\n\n unittest.main()\n\n```\n![image](http://mocobk.test.upcdn.net/image/2019-04-14-112321.jpg)\n\n### \u7528\u4f8b\u73af\u5883\n\n| Tag | \u82f1\u6587 | \u4e2d\u6587 |\n|:----|:------|:-----|\n|TEST|Testing|\u6d4b\u8bd5|\n|UAT|User Acceptance Test|\u7528\u6237\u9a8c\u6536\u6d4b\u8bd5|\n|PROD|Production|\u6b63\u5f0f/\u751f\u4ea7|\n\n\n### \u7528\u4f8b\u7ea7\u522b\n**Level:** \n\n|SMOKE/P0|P1|P2|P3|P4|\n|----|----|----|----|-----|\n\n### [\u7528\u4f8b\u7ea7\u522b\u53c2\u8003](https://www.jianshu.com/p/4903856cd6c5)\n\nP0/SMOKE \u5192\u70df\uff1a\n\n 1\u3001\u6311\u4e00\u4e9b\u57fa\u672c\u7684\u3001\u5e26\u6709\u9488\u5bf9\u6027\u3001\u5173\u952e\u7684\u7528\u4f8b\u8fdb\u884c\u6d4b\u8bd5\uff0c\u4e0d\u4f1a\u5f88\u7ec6\n 2\u3001\u5212\u5206\u4f9d\u636e\uff1a\u4e3b\u6d41\u7a0b\u6216\u8005\u5fc5\u987b\u5b9e\u73b0\u7684\u529f\u80fd\u6d4b\u8bd5\n 3\u3001\u8be5\u7ea7\u522b\u7684\u6d4b\u8bd5\u7528\u4f8b\u5728\u6bcf\u4e00\u8f6e\u7248\u672c\u6d4b\u8bd5\u524d\u6267\u884c\n\nP1/Level1 \u57fa\u672c\uff1a\n\n 1\u3001\u8be5\u7c7b\u7528\u4f8b\u8bbe\u8ba1\u7cfb\u7edf\u57fa\u672c\u529f\u80fd\uff0c1\u7ea7\u7528\u4f8b\u7684\u6570\u91cf\u5e94\u53d7\u5230\u63a7\u5236\n 2\u3001\u5212\u5206\u4f9d\u636e\uff1a\u8be5\u7528\u4f8b\u6267\u884c\u7684\u5931\u8d25\u4f1a\u5bfc\u81f4\u591a\u5904\u91cd\u8981\u529f\u80fd\u65e0\u6cd5\u8fd0\u884c\u7684\uff0c\u5982\uff1a\u8868\u5355\u7ef4\u62a4\u4e2d\u7684\u589e\u52a0\u529f\u80fd\u3001\u6700\u5e73\u5e38\u7684\u4e1a\u52a1\u4f7f\u7528\u7b49\u3002\u53ef\u4ee5\u8ba4\u4e3a\u662f\u53d1\u751f\u6982\u7387\u8f83\u9ad8\u7684\u800c\u7ecf\u5e38\u8fd9\u6837\u4f7f\u7528\u7684\u4e00\u4e9b\u529f\u80fd\u7528\u4f8b\u3002\n 3\u3001\u8be5\u7ea7\u522b\u7684\u6d4b\u8bd5\u7528\u4f8b\u5728\u6bcf\u4e00\u8f6e\u7248\u672c\u6d4b\u8bd5\u4e2d\u90fd\u5fc5\u987b\u6267\u884c\n\nP2/Level2 \u91cd\u8981\uff1a\n\n 1\u30012\u7ea7\u6d4b\u8bd5\u7528\u4f8b\u5b9e\u9645\u7cfb\u7edf\u7684\u91cd\u8981\u529f\u80fd\u30022\u7ea7\u7528\u4f8b\u6570\u91cf\u8f83\u591a\u3002\n 2\u3001\u5212\u5206\u4f9d\u636e\uff1a\u4e3b\u8981\u5305\u62ec\u4e00\u4e9b\u529f\u80fd\u4ea4\u4e92\u76f8\u5173\u3001\u4e2a\u79cd\u5e94\u7528\u573a\u666f\u3001\u4f7f\u7528\u9891\u7387\u8f83\u9ad8\u7684\u6b63\u5e38\u529f\u80fd\u6d4b\u8bd5\u7528\u4f8b\n 3\u3001\u5728\u975e\u56de\u5f52\u7684\u7cfb\u7edf\u6d4b\u8bd5\u7248\u672c\u4e2d\u57fa\u672c\u4e0a\u90fd\u9700\u8981\u8fdb\u884c\u9a8c\u8bc1\uff0c\u4ee5\u4fdd\u8bc1\u7cfb\u7edf\u6240\u6709\u7684\u91cd\u8981\u529f\u80fd\u90fd\u80fd\u591f\u6b63\u5e38\u5b9e\u73b0\u3002\u5728\u6d4b\u8bd5\u8fc7\u7a0b\u4e2d\u53ef\u4ee5\u6839\u636e\u7248\u672c\u5f53\u524d\u7684\u5177\u4f53\u60c5\u51b5\u8fdb\u884c\u5b89\u6392\u662f\u591f\u8fdb\u884c\u6d4b\u8bd5\u3002\n\nP3/Level3 \u4e00\u822c\uff1a\n\n 1\u30013\u7ea7\u6d4b\u8bd5\u7528\u4f8b\u8bbe\u8ba1\u7cfb\u7edf\u7684\u4e00\u534a\u529f\u80fd\uff0c3\u7ea7\u7528\u4f8b\u6570\u91cf\u4e5f\u8f83\u591a\u3002\n 2\u3001\u5212\u5206\u4f9d\u636e\uff1a\u4f7f\u7528\u9891\u7387\u8f83\u4f4e\u4e8e2\u7ea7\u7528\u4f8b\u3002\u4f8b\u5982\uff1a\u6570\u503c\u6216\u6570\u7ec4\u7684\u4fbf\u6377\u60c5\u51b5\u3001\u7279\u6b8a\u5b57\u7b26\u3001\u5b57\u7b26\u4e32\u8d85\u957f\u3001\u4e0e\u5916\u90e8\u4ef6\u4ea4\u4e92\u6d88\u606f\u5931\u8d25\u3001\u6d88\u606f\u8d85\u65f6\u3001\u4e8b\u7269\u5b8c\u6574\u6027\u6d4b\u8bd5\u3001\u53ef\u9760\u6027\u6d4b\u8bd5\u7b49\u7b49\u3002\n 3\u3001\u5728\u975e\u56de\u5f52\u7684\u7cfb\u7edf\u6d4b\u8bd5\u7248\u672c\u4e2d\u4e0d\u4e00\u5b9a\u90fd\u8fdb\u884c\u9a8c\u8bc1\uff0c\u800c\u4e14\u5728\u7cfb\u7edf\u6d4b\u8bd5\u7684\u4e2d\u540e\u671f\u5e76\u4e0d\u4e00\u5b9a\u9700\u8981\u6bcf\u4e2a\u7248\u672c\u90fd\u8fdb\u884c\u6d4b\u8bd5\n \nP4/Level4 \u751f\u50fb\uff1a\u5982\u679c\u6ca1\u6709\u53ef\u4ee5\u4e0d\u9002\u7528\u8be5\u7ea7\u522b\n\n 1\u3001\u8be5\u7ea7\u522b\u7528\u4f8b\u4e00\u534a\u975e\u5e38\u5c11\u3002\n 2\u3001\u5212\u5206\u4f9d\u636e\uff1a\u8be5\u7528\u4f8b\u5bf9\u5e94\u8f83\u751f\u50fb\u7684\u9884\u7f6e\u6761\u4ef6\u548c\u6570\u636e\u8bbe\u7f6e\u3002\u867d\u7136\u67d0\u4e9b\u6d4b\u8bd5\u7528\u4f8b\u53d1\u73b0\u8fc7\u8f83\u4e25\u91cd\u7684\u9519\u8bef\uff0c\u4f46\u662f\u90a3\u4e9b\u7528\u4f8b\u7684\u5904\u7f5a\u6761\u4ef6\u975e\u5e38\u7279\u6b8a\uff0c\u4ecd\u7136\u5e94\u8be5\u88ab\u690d\u51654\u7ea7\u7528\u4f8b\u4e2d\u3002\u5982\u754c\u9762\u89c4\u8303\u5316\u7684\u6d4b\u8bd5\u4e5f\u53ef\u5f52\u51654\u7ea7\u7528\u4f8b\u3002\u5728\u5b9e\u9645\u4f7f\u7528\u4e2d\u4f7f\u7528\u9891\u7387\u975e\u5e38\u4f4e\u3001\u5bf9\u7528\u6237\u53ef\u6709\u53ef\u65e0\u7684\u529f\u80fd\u3002\n 3\u3001\u5728\u7248\u672c\u6d4b\u8bd5\u4e2d\u6709\u67d0\u4e9b\u6b63\u5e38\u539f\u56e0\uff08\u5305\u62ec\uff1a\u73af\u5883\u3001\u4eba\u529b\u3001\u65f6\u95f4\u7b49\uff09\u7ecf\u8fc7\u6d4b\u8bd5\u7ecf\u7406\u540c\u610f\u53ef\u4ee5\u4e0d\u8fdb\u884c\u6d4b\u8bd5\u3002", "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/mocobk/testfilter", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "testfilter", "package_url": "https://pypi.org/project/testfilter/", "platform": "", "project_url": "https://pypi.org/project/testfilter/", "project_urls": { "Homepage": "https://github.com/mocobk/testfilter" }, "release_url": "https://pypi.org/project/testfilter/0.0.8/", "requires_dist": null, "requires_python": "", "summary": "unittest \u7528\u4f8b\u6267\u884c\u8fc7\u6ee4\uff0c \u53ef\u9009\u62e9\u7528\u4f8b\u6267\u884c\u73af\u5883\u6216\u7528\u4f8b\u7ea7\u522b\u8fdb\u884c\u8fc7\u6ee4", "version": "0.0.8", "yanked": false, "yanked_reason": null }, "last_serial": 6166367, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "8cfa2f20817bdef80dc3de7fb6e96aac", "sha256": "cbc855113fcd45d6b716b713718a8d9244afca7b92267f8e16c2393b04c5276b" }, "downloads": -1, "filename": "testfilter-0.0.1.tar.gz", "has_sig": false, "md5_digest": "8cfa2f20817bdef80dc3de7fb6e96aac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2857, "upload_time": "2019-04-14T12:46:00", "upload_time_iso_8601": "2019-04-14T12:46:00.712293Z", "url": "https://files.pythonhosted.org/packages/3a/2a/be62ffa4b578a943f52889c0b544f843dc7e80e071cb5b4ca5c6b0f9fd25/testfilter-0.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "12f5e026b3f5ffd8b5a47883bfffb957", "sha256": "8c4d7c7fa9f4eb775ecbc0a48b732db5d4b74a8aefce5f3ff435a5288540a5e9" }, "downloads": -1, "filename": "testfilter-0.0.2.tar.gz", "has_sig": false, "md5_digest": "12f5e026b3f5ffd8b5a47883bfffb957", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2877, "upload_time": "2019-04-14T12:50:51", "upload_time_iso_8601": "2019-04-14T12:50:51.826507Z", "url": "https://files.pythonhosted.org/packages/54/61/189a1642739cc419d83ca6ecd7f6b18a4af46ac36675ad2795106faf90ee/testfilter-0.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "89c10141b40e4d29befcef9b131010a5", "sha256": "83fbcded2385cd8ae995d87ecb05623746143df7990e92867b87bed1ec4e3cb1" }, "downloads": -1, "filename": "testfilter-0.0.3.tar.gz", "has_sig": false, "md5_digest": "89c10141b40e4d29befcef9b131010a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3485, "upload_time": "2019-09-24T07:42:15", "upload_time_iso_8601": "2019-09-24T07:42:15.298728Z", "url": "https://files.pythonhosted.org/packages/2a/f3/0a2579f8942b958bd3a359c8c454521c2c4f45e8c964f8aa1375c287749b/testfilter-0.0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "c74b1b900a686f8dac98b0f07c3cb178", "sha256": "ca2e59e9da89144986d02d66e0bf786366663ebddd98027a6419e8f11c7b9578" }, "downloads": -1, "filename": "testfilter-0.0.4.tar.gz", "has_sig": false, "md5_digest": "c74b1b900a686f8dac98b0f07c3cb178", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3521, "upload_time": "2019-09-24T08:22:42", "upload_time_iso_8601": "2019-09-24T08:22:42.122801Z", "url": "https://files.pythonhosted.org/packages/d8/74/3fa15090e06b1c059b3cac525b9d94467a3fb8ab9e8ba813ac36db561ff6/testfilter-0.0.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "0941732cb428ce0ae3648a75fd797214", "sha256": "3217908f3b8b1c009a85dfb6307503e689218c02cc085f4fc4d18dc80da50be0" }, "downloads": -1, "filename": "testfilter-0.0.5.tar.gz", "has_sig": false, "md5_digest": "0941732cb428ce0ae3648a75fd797214", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3537, "upload_time": "2019-10-10T06:18:55", "upload_time_iso_8601": "2019-10-10T06:18:55.504241Z", "url": "https://files.pythonhosted.org/packages/08/e3/6d629e6d739e2d165d5c4c951b93d174636ef06d04c8d6763386fe276bf5/testfilter-0.0.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "52f1e1876bf964526f0dd395b109fd21", "sha256": "89eb41458c02e3533dc89d20d88c74839ad93bdaa14e9785cc998caefdd85202" }, "downloads": -1, "filename": "testfilter-0.0.6.tar.gz", "has_sig": false, "md5_digest": "52f1e1876bf964526f0dd395b109fd21", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4869, "upload_time": "2019-10-17T03:06:07", "upload_time_iso_8601": "2019-10-17T03:06:07.487958Z", "url": "https://files.pythonhosted.org/packages/2d/e8/ac8fbd385ce8a51c2078d35133a4918cb181034a7deae8b3ce2a54e00a6b/testfilter-0.0.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "1590255bf2248bd3e1d2f4085d4236b0", "sha256": "209e52f3585b9f4fce31ee5e40e0824c835acfe9d715105f61640e4bd0f53392" }, "downloads": -1, "filename": "testfilter-0.0.7.tar.gz", "has_sig": false, "md5_digest": "1590255bf2248bd3e1d2f4085d4236b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4881, "upload_time": "2019-10-31T02:46:16", "upload_time_iso_8601": "2019-10-31T02:46:16.030731Z", "url": "https://files.pythonhosted.org/packages/4e/ea/bd630705554e624217fef554f98f7a127938d8ff49344826864333989445/testfilter-0.0.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "665647e39793e8680311ab85d18bf591", "sha256": "ae7e30ec47c58250720a90f9e3f3e77ba83f46d3e88e2cb4d93ddb1c0f036444" }, "downloads": -1, "filename": "testfilter-0.0.8.tar.gz", "has_sig": false, "md5_digest": "665647e39793e8680311ab85d18bf591", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4905, "upload_time": "2019-11-20T03:12:35", "upload_time_iso_8601": "2019-11-20T03:12:35.630765Z", "url": "https://files.pythonhosted.org/packages/4f/67/cd20eaec44daa66aa40a089ae114205368d64ca5ba3eb9448a289627c892/testfilter-0.0.8.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "665647e39793e8680311ab85d18bf591", "sha256": "ae7e30ec47c58250720a90f9e3f3e77ba83f46d3e88e2cb4d93ddb1c0f036444" }, "downloads": -1, "filename": "testfilter-0.0.8.tar.gz", "has_sig": false, "md5_digest": "665647e39793e8680311ab85d18bf591", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4905, "upload_time": "2019-11-20T03:12:35", "upload_time_iso_8601": "2019-11-20T03:12:35.630765Z", "url": "https://files.pythonhosted.org/packages/4f/67/cd20eaec44daa66aa40a089ae114205368d64ca5ba3eb9448a289627c892/testfilter-0.0.8.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }