{"id":20652524,"url":"https://github.com/bradleywood/software-quality-test-framework","last_synced_at":"2025-08-08T14:14:53.747Z","repository":{"id":57719618,"uuid":"121662864","full_name":"BradleyWood/Software-Quality-Test-Framework","owner":"BradleyWood","description":"basic software test framework","archived":false,"fork":false,"pushed_at":"2018-07-08T00:12:18.000Z","size":143,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-27T22:27:10.927Z","etag":null,"topics":["java","test-framework","testing"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BradleyWood.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-02-15T18:04:40.000Z","updated_at":"2018-07-08T00:12:20.000Z","dependencies_parsed_at":"2022-09-02T12:31:45.413Z","dependency_job_id":null,"html_url":"https://github.com/BradleyWood/Software-Quality-Test-Framework","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/BradleyWood/Software-Quality-Test-Framework","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BradleyWood%2FSoftware-Quality-Test-Framework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BradleyWood%2FSoftware-Quality-Test-Framework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BradleyWood%2FSoftware-Quality-Test-Framework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BradleyWood%2FSoftware-Quality-Test-Framework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BradleyWood","download_url":"https://codeload.github.com/BradleyWood/Software-Quality-Test-Framework/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BradleyWood%2FSoftware-Quality-Test-Framework/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269433054,"owners_count":24415985,"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","status":"online","status_checked_at":"2025-08-08T02:00:09.200Z","response_time":72,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["java","test-framework","testing"],"created_at":"2024-11-16T17:35:27.865Z","updated_at":"2025-08-08T14:14:53.723Z","avatar_url":"https://github.com/BradleyWood.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Software-Quality-Test-Framework\n\nA lightweight software testing framework that can be\nintegrated with maven projects.\n\u003cbr\u003e\u003c/br\u003e\n\n## How to define a test\n\nTests must be publicly accessible non-static methods with no arguments.\nTests must also be marked with @Test (org.sqtf.annotation.Test) annotation.\n\n\u003cbr\u003e\u003c/br\u003e\n\n```java\n@Test(expected = ArithmeticException.class)\npublic void divideByZeroTest() {\n    int a = 5 / 0;\n}\n```\n\u003cbr\u003e\u003c/br\u003e\n\n### @Test annotation\n\nThe Test annotation has two optional parameters: expected and timeout.\nExpected denotes the expected exception type to be thrown and timeout\nis an integer value measured in milliseconds. Tests that fail to complete\nwithin the timeout will be terminated and marked as failure.\n\u003cbr\u003e\u003c/br\u003e\n\n## How it works\n\nTests are dynamically loaded based on the specified test class root.\nReflection is used to find and invoke all test methods.\n\u003cbr\u003e\u003c/br\u003e\n\n## Running from the command-line\n\nThe first argument should always be a relative path to the test class root folder.\nThe next argument is optional and denotes the output directory for the detailed\ntest reports.\n\nTo view the results graphically run with\n```\n-display\n```\n\n## Parameterized tests\n\nParameterized tests can be easily implemented and accept test data from various\nsources including methods and csv files. The test data is automatically converted\nto match the parameter types of the test. Data that cannot be converted to match\nthe parameter types of the test will result in test failure.\n\n\n#### Use test data from a CSV File\n\n```java\n@Test\n@Parameters(source = \"testData/add_csv_data.csv\")\npublic void parameterizedAdd(int a, int b, int expected) {\n    Assert.assertEquals(expected, a + b);\n}\n```\n\n#### Use test data from local static or instance methods\n\n```java\n@Test\n@Parameters(source = \"dataGenerator\")\npublic void parameterizedAdd(int a, int b, int expected) {\n    Assert.assertEquals(expected, a + b);\n}\n\npublic Collection dataGenerator() {\n    List\u003cObject[]\u003e lst = new ArrayList\u003c\u003e();\n    lst.add(Arrays.asList(0, 0, 0));\n    lst.add(Arrays.asList(10, 20, 30));\n    lst.add(Arrays.asList(100, 200, 300));\n    return lst;\n}\n```\n\n#### Use test data from a json file\n\n```json\n[\n  [\n    {\n      \"name\": \"Brad\"\n    }\n  ]\n]\n```\n\nThe data can automatically be converted to objects or primitive types.\n\n```java\nclass Person {\n    String name;\n}\n\n@Test\n@Parameters(source = \"testData/json_object.json\")\npublic void testAddJsonSource(Person obj) {\n    Assert.assertNotNull(obj.name);\n}\n```\n\n## Maven integration\n\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.github.bradleywood\u003c/groupId\u003e\n    \u003cartifactId\u003esqtf-core\u003c/artifactId\u003e\n    \u003cversion\u003e1.1\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nConfigure the surefire plugin\n\n```xml\n\u003cplugin\u003e\n    \u003cartifactId\u003emaven-surefire-plugin\u003c/artifactId\u003e\n    \u003cversion\u003e2.20.1\u003c/version\u003e\n    \u003cdependencies\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003ecom.github.bradleywood\u003c/groupId\u003e\n            \u003cartifactId\u003esqtf-provider\u003c/artifactId\u003e\n            \u003cversion\u003e1.1\u003c/version\u003e\n        \u003c/dependency\u003e\n    \u003c/dependencies\u003e\n\u003c/plugin\u003e\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbradleywood%2Fsoftware-quality-test-framework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbradleywood%2Fsoftware-quality-test-framework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbradleywood%2Fsoftware-quality-test-framework/lists"}