{"id":18513178,"url":"https://github.com/tomzox/gtest_gui","last_synced_at":"2025-05-14T12:18:00.504Z","repository":{"id":154044379,"uuid":"612936552","full_name":"tomzox/gtest_gui","owner":"tomzox","description":"Test runner GUI for Google-Test instrumented test applications","archived":false,"fork":false,"pushed_at":"2023-08-06T14:28:32.000Z","size":689,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-27T06:15:35.513Z","etag":null,"topics":["google-test","graphical-user-interface","gui","test-runners","testing","testing-tool","tkinter-python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tomzox.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-12T12:37:57.000Z","updated_at":"2024-12-18T02:42:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"94493028-a866-4de4-ac1a-43b3797baff1","html_url":"https://github.com/tomzox/gtest_gui","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomzox%2Fgtest_gui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomzox%2Fgtest_gui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomzox%2Fgtest_gui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tomzox%2Fgtest_gui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tomzox","download_url":"https://codeload.github.com/tomzox/gtest_gui/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239225913,"owners_count":19603196,"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":["google-test","graphical-user-interface","gui","test-runners","testing","testing-tool","tkinter-python"],"created_at":"2024-11-06T15:36:44.923Z","updated_at":"2025-02-17T03:19:53.639Z","avatar_url":"https://github.com/tomzox.png","language":"Python","readme":"# GtestGui\n\nGtestGui is a test-runner with graphical user-interface for test applications\nusing the [GoogleTest framework](https://google.github.io/googletest/).\n\nGtestGui was created mainly for removing the need for fiddling with Gtest\ncommand line options, for tracking the status of long-running test campaigns\nand for extracting individual test cases' traces from large trace output\nfiles.\n\nThe GoogleTest framework is widely known for its C++ Unit-Testing support\nvia the [GMock](https://google.github.io/googletest/reference/mocking.html)\nfeature. But one can also use just the\n[test framework](https://google.github.io/googletest/reference/testing.html)\nfor defining test cases, scheduling test executions, and collecting verdicts.\nEven using only the framework saves some implementation effort, but more\nimportantly also has the advantage of presenting a well-known common interface\nto developers.\n\nGtestGui is designed especially for component tests, integration tests and\nother higher-level testing, where the number of tests is smaller compared to\nunit-testing, but individual test cases run longer and tests may have to be run\nrepeatedly (e.g. when test scenarios are not fully reproducible due to timing\nbetween threads.) But it can also be used for unit-tests with \"flakiness\" (as\nthe [gtest-parallel](https://github.com/google/gtest-parallel) command line\ntool calls it) which show sporadic failures and thus require high repetition\ncount for proving stability.\n\nGtestGui supports this by allowing to schedule test cases concurrently across\nmultiple CPUs.  For very long-running campaigns, the \"clean traces of passed\ntests\" option allows storing only traces of failed tests to disk. Status of\nongoing tests is presented in form of a top-level pass/fail summary and\nprogress bar, as well as a running log of test case verdicts, which can be\nfiltered and sorted (e.g. to show only failed test cases.) Traces of individual\ntest cases are accessible while the test campaign is still running either in a\nsmall preview window below the test log, or via double-click which exports them\nto an external trace browser. ([Trowser](https://github.com/tomzox/trowser) is\nrecommended for this purpose.)\n\nGtestGui provides access to Gtest command line options directly from the main\nwindow. Most importantly, test case filters can be entered manually, or via\ndrop-down menu listing all test cases, or the test case list dialog. Other\nsupported options are the test repetition count, failure limit, shuffling\nexecution order, running disabled tests and breaking on failure or exceptions.\nThe latter will on POSIX systems produce a core dump that can be pre-analyzed\nvia the result log's context menu by extracting stack traces. Finally, an\noption allows running tests under valgrind and automatically detecting issues\nthat were found for the result log.\n\nGtestGui can also be used for analyzing pre-existing trace output files\nby adding the trace file names on the command line when starting.\n\n\u003cIMG ALIGN=\"center\" SRC=\"images/screenshot_main.png\" ALT=\"screenshot of main window\" BORDER=\"10\" WIDTH=\"400\" /\u003e\n\nGtestGui has a mature feature set that can support C++ development in all\ndevelopment phases: During initial code construction with test-driven design,\nit supports running the same sub-set of test cases over and over again. After\ncode completion, it supports getting a quick overview of stability across the\ncomplete set of test cases and which kind of failures occur. And it supports\nfinal quality checking in long-running, high-repetition test campaigns,\noptionally using valgrind or sanitizer builds.\n\n## Installation\n\nGtestGui is available as package \"mote-gtest-gui\" (\"Module tester's Gtest GUI\")\non [PyPi](https://pypi.org/project/mote-gtest-gui/). It can be installed using\npip3:\n```console\n   pip3 install mote-gtest-gui\n```\n\nMake sure that the path where pip3 installs scripts is in your search path\n(e.g. on UNIX `$HOME/.local/bin`). Then you can run GtestGui simply by\nexecuting `gtest_gui`.\n\nAlternatively, you can run GtestGui without installation by cloning the\nrepository and then running `gtest_gui.py` in the top-level directory. For\nintegration with the [Trowser](https://github.com/tomzox/trowser) trace browser\neither place `trowser.py` somewhere in the path, or create a symbolic link to\nthe path where it is located as `gtest_gui/trowser`, or specify the full path\nto the executable in configuration.\n\n# Usage\n\nYou can either specify the path of your test application executable file\ndirectly on the command line, or select one via a file\nbrowser afterward (see the Control menu).  Alternatively, or additionally, you\ncan specify one or more trace output files on the command line, which will be\nparsed for test case results and loaded into the result list in the GUI.\n\nIn summary, most common usage is as follows:\n```console\n    gtest_gui my_test_application.exe\n```\n\nOn the MS-Windows platform, start GtestGui via pythonw.exe to avoid getting a\nconsole window.\n\n## Documentation\n\nFor a detailed description, please refer to the [manual page](doc/gtest_gui.pod)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftomzox%2Fgtest_gui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftomzox%2Fgtest_gui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftomzox%2Fgtest_gui/lists"}