{"data":{"entities":[{"slug":"pytest","name":"pytest","tagline":"","homepage":"https://pytest.org","category":{"slug":"testing-tools","name":"Testing Tools"},"vendor":{"name":"pytest-dev","primaryDomain":null},"score":{"composite":73.7,"confidence":0.72,"confidenceBand":"medium","breakdown":{"capabilities":{"value":28.9,"weight":0.083,"present":true,"contribution":2.4},"repo_stars":{"value":78.5,"weight":0.033,"present":true,"contribution":2.6},"integrations":{"value":0,"weight":0.053,"present":false,"contribution":0},"dependent_projects":{"value":90.9,"weight":0.08,"present":true,"contribution":7.3},"dev_activity":{"value":63,"weight":0.12,"present":true,"contribution":7.6},"release_cadence":{"value":74.4,"weight":0.067,"present":true,"contribution":5},"security_posture":{"value":0,"weight":0.087,"present":false,"contribution":0},"package_downloads":{"value":100,"weight":0.173,"present":true,"contribution":17.3},"security_score":{"value":67,"weight":0.053,"present":true,"contribution":3.6},"community_qa_activity":{"value":79.9,"weight":0.08,"present":true,"contribution":6.4}},"computedAt":"2026-09-10T17:47:07.871Z","stale":false},"uri":"https://www.vioscale.ai/software/pytest","aliases":["py-test"],"status":"published","crawlStatus":"ok","indexStatus":"indexed","nextCrawlAt":"2026-09-24T17:47:08.069Z","categories":[{"slug":"testing-tools","name":"Testing Tools","isPrimary":true}],"facts":{"adoption":[{"attribute":"adoption.package_downloads_weekly","value":237782854,"provenance":{"source":"https://pypistats.org/packages/pytest","sourceType":"vioscale-crawler","retrievedAt":"2026-08-26T18:38:03.824Z","confidence":0.85}},{"attribute":"adoption.github_stars","value":14495,"provenance":{"source":"https://github.com/pytest-dev/pytest","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T17:40:26.725Z","confidence":0.9}},{"attribute":"adoption.stackoverflow_questions","value":30000,"provenance":{"source":"https://stackoverflow.com/questions/tagged/pytest","sourceType":"vioscale-crawler","retrievedAt":"2026-07-30T10:06:46.477Z","confidence":0.75}},{"attribute":"adoption.dependent_repos","value":283154,"provenance":{"source":"https://packages.ecosyste.ms/api/v1/packages/lookup?repository_url=https%3A%2F%2Fgithub.com%2Fpytest-dev%2Fpytest","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T17:40:26.740Z","confidence":0.85}}],"activity":[{"attribute":"activity.commits_last_30d","value":99,"provenance":{"source":"https://github.com/pytest-dev/pytest/pulse","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T17:40:26.725Z","confidence":0.65}}],"release":[{"attribute":"release.cadence_days","value":46,"provenance":{"source":"https://github.com/pytest-dev/pytest/releases","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T17:40:26.725Z","confidence":0.7}},{"attribute":"release.history","value":[{"url":"https://github.com/pytest-dev/pytest/releases/tag/9.1.1","date":"2026-06-19T10:58:55Z","type":"stable","version":"9.1.1"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/9.1.0","date":"2026-06-13T18:53:04Z","type":"stable","version":"9.1.0"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/9.0.3","date":"2026-04-07T17:16:45Z","type":"stable","version":"9.0.3"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/9.0.2","date":"2025-12-06T21:31:16Z","type":"stable","version":"9.0.2"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/9.0.1","date":"2025-11-12T13:05:30Z","type":"stable","version":"9.0.1"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/9.0.0","date":"2025-11-08T17:37:52Z","type":"stable","version":"9.0.0"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.4.2","date":"2025-09-04T14:35:52Z","type":"stable","version":"8.4.2"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.4.1","date":"2025-06-18T05:48:45Z","type":"stable","version":"8.4.1"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.4.0","date":"2025-06-02T17:37:58Z","type":"stable","version":"8.4.0"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.3.5","date":"2025-03-02T12:56:47Z","type":"stable","version":"8.3.5"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.3.4","date":"2024-12-01T13:01:48Z","type":"stable","version":"8.3.4"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.3.3","date":"2024-09-10T10:53:49Z","type":"stable","version":"8.3.3"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.3.2","date":"2024-07-25T10:40:33Z","type":"stable","version":"8.3.2"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.3.1","date":"2024-07-20T16:25:36Z","type":"stable","version":"8.3.1"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.3.0","date":"2024-07-20T15:33:08Z","type":"stable","version":"8.3.0"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.2.2","date":"2024-06-04T13:39:01Z","type":"stable","version":"8.2.2"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.2.1","date":"2024-05-19T19:08:47Z","type":"stable","version":"8.2.1"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.2.0","date":"2024-04-27T23:35:31Z","type":"stable","version":"8.2.0"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.1.2","date":"2024-04-26T18:05:59Z","type":"stable","version":"8.1.2"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.1.1","date":"2024-03-09T11:51:50Z","type":"stable","version":"8.1.1"}],"provenance":{"source":"https://github.com/pytest-dev/pytest/releases","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T17:40:26.725Z","confidence":0.7}}],"license":[{"attribute":"license.spdx","value":"MIT","provenance":{"source":"https://github.com/pytest-dev/pytest","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T17:40:26.725Z","confidence":0.99}}],"pricing":[{"attribute":"pricing","value":{"type":"open_source","plans":[{"free":true,"name":"Community (Open Source)","features":["Detailed assertion introspection","Auto-discovery of test modules","Modular fixtures","unittest compatibility","1300+ external plugins"],"contactSales":false},{"free":false,"name":"Enterprise Support","description":"Available via Tidelift Subscription for commercial support and maintenance","contactSales":true}],"summary":"Free and open source. Enterprise support available via Tidelift.","freeTier":true,"sourceUrl":"https://pytest.org","retrievedAt":"2026-07-08T12:05:17.943Z"},"provenance":{"source":"https://pytest.org","sourceType":"vioscale-crawler","retrievedAt":"2026-07-08T12:05:17.943Z","confidence":0.6}},{"attribute":"pricing.price_level","value":"free","provenance":{"source":"https://pytest.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-14T11:06:03.295Z","confidence":0.6}},{"attribute":"pricing.free_tier","value":true,"provenance":{"source":"https://pytest.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-05T12:43:06.488Z","confidence":0.6}},{"attribute":"pricing.model","value":"commercial","provenance":{"source":"https://pytest.org","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T17:40:26.735Z","confidence":0.48}}],"features":[{"attribute":"features.capabilities","value":{"languages":"Python","assertions":true},"provenance":{"source":"https://pytest.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-14T11:06:03.295Z","confidence":0.6}}],"market":[{"attribute":"market.availability","value":{"primaryMarkets":[],"availabilityScope":"global","availableCountries":[],"notAvailableCountries":[]},"provenance":{"source":"https://pytest.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-14T11:06:03.295Z","confidence":0.75}}],"content":[{"attribute":"content.faq","value":[{"answer":"pytest is a testing framework for Python that enables developers to write simple, readable tests using plain assert statements. It supports everything from basic unit testing to complex functional testing and can automatically discover test files throughout a project directory.","source":"https://docs.pytest.org/en/stable/","question":"What is pytest and what is it primarily used for?","confidence":0.95},{"answer":"pytest is designed exclusively for Python and requires Python 3.10 or later, or PyPy 3. It does not provide testing support for other programming languages.","source":"https://docs.pytest.org/en/stable/","question":"What programming languages does pytest support?","confidence":0.95},{"answer":"pytest is open source software distributed under the MIT license and is completely free to use, modify, and distribute. There is no commercial version or paid tier.","source":"https://github.com/pytest-dev/pytest","question":"What is the license and cost model for pytest?","confidence":0.95},{"answer":"Fixtures are reusable test components that set up preconditions and provide test data through a dependency injection mechanism. They eliminate boilerplate setup and teardown code, improve test clarity by using explicit function parameters, and can be easily parametrized to run tests with multiple data sets.","source":"https://docs.pytest.org/en/stable/fixture.html","question":"What are pytest fixtures and why are they important?","confidence":0.95},{"answer":"pytest uses plain Python assert statements instead of unittest's specialized assertion methods like assertEqual(), provides more detailed introspection into failing assertions, and requires less boilerplate code. Both frameworks can coexist in a project, as pytest can run unittest test suites directly.","source":"https://docs.pytest.org/en/stable/","question":"How does pytest compare to Python's built-in unittest framework?","confidence":0.93},{"answer":"Yes, pytest can execute unittest and trial test suites natively without requiring any code changes. This allows teams to adopt pytest incrementally while maintaining compatibility with existing test code.","source":"https://docs.pytest.org/en/stable/","question":"Can pytest run existing unittest test suites without modification?","confidence":0.94},{"answer":"pytest features a robust plugin system with over 1,300 external plugins available that extend its functionality for CI/CD integration, coverage reporting, parallel execution, and other specialized testing needs. This makes pytest highly customizable for different project requirements.","source":"https://docs.pytest.org/en/stable/","question":"What is pytest's plugin architecture and how extensible is it?","confidence":0.92},{"answer":"pytest follows standard Python naming conventions, automatically locating and running test files named test_*.py or *_test.py, and test functions beginning with test_. This automatic discovery eliminates the need for manual test registration or configuration in most cases.","source":"https://docs.pytest.org/en/stable/","question":"How does pytest automatically discover and run tests?","confidence":0.94}],"provenance":{"source":"https://docs.pytest.org/en/stable/","sourceType":"vioscale-crawler","retrievedAt":"2026-07-30T12:43:01.703Z","confidence":0.94125}}],"platform":[{"attribute":"platform.support","value":{"cli":true},"provenance":{"source":"https://pytest.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-14T11:06:03.295Z","confidence":0.6}}],"deployment":[{"attribute":"deployment.options","value":{"self_hosted":true},"provenance":{"source":"https://pytest.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-14T11:06:03.295Z","confidence":0.6}}],"description":[{"attribute":"description.long","value":"A testing framework for Python that enables developers to write readable, straightforward test cases while scaling to handle sophisticated functional testing requirements for applications and libraries.","provenance":{"source":"https://pytest.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-14T11:06:03.295Z","confidence":0.6}}],"language":[{"attribute":"language.primary","value":"Python","provenance":{"source":"https://github.com/pytest-dev/pytest","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T17:40:26.725Z","confidence":0.98}}],"security":[{"attribute":"security.scorecard","value":6.7,"provenance":{"source":"https://api.securityscorecards.dev/projects/github.com/pytest-dev/pytest","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T17:40:26.745Z","confidence":0.9}},{"attribute":"security.vulnerabilities","value":{"count":1,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=pypi&package_name=pytest&per_page=100","last_12m":1,"max_severity":"MODERATE"},"provenance":{"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=pypi&package_name=pytest&per_page=100","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T17:40:26.758Z","confidence":0.9}}]},"factList":[{"attribute":"adoption.package_downloads_weekly","value":237782854,"provenance":{"source":"https://pypistats.org/packages/pytest","sourceType":"vioscale-crawler","retrievedAt":"2026-08-26T18:38:03.824Z","confidence":0.85}},{"attribute":"adoption.github_stars","value":14495,"provenance":{"source":"https://github.com/pytest-dev/pytest","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T17:40:26.725Z","confidence":0.9}},{"attribute":"adoption.stackoverflow_questions","value":30000,"provenance":{"source":"https://stackoverflow.com/questions/tagged/pytest","sourceType":"vioscale-crawler","retrievedAt":"2026-07-30T10:06:46.477Z","confidence":0.75}},{"attribute":"activity.commits_last_30d","value":99,"provenance":{"source":"https://github.com/pytest-dev/pytest/pulse","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T17:40:26.725Z","confidence":0.65}},{"attribute":"release.cadence_days","value":46,"provenance":{"source":"https://github.com/pytest-dev/pytest/releases","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T17:40:26.725Z","confidence":0.7}},{"attribute":"license.spdx","value":"MIT","provenance":{"source":"https://github.com/pytest-dev/pytest","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T17:40:26.725Z","confidence":0.99}},{"attribute":"pricing","value":{"type":"open_source","plans":[{"free":true,"name":"Community (Open Source)","features":["Detailed assertion introspection","Auto-discovery of test modules","Modular fixtures","unittest compatibility","1300+ external plugins"],"contactSales":false},{"free":false,"name":"Enterprise Support","description":"Available via Tidelift Subscription for commercial support and maintenance","contactSales":true}],"summary":"Free and open source. Enterprise support available via Tidelift.","freeTier":true,"sourceUrl":"https://pytest.org","retrievedAt":"2026-07-08T12:05:17.943Z"},"provenance":{"source":"https://pytest.org","sourceType":"vioscale-crawler","retrievedAt":"2026-07-08T12:05:17.943Z","confidence":0.6}},{"attribute":"pricing.price_level","value":"free","provenance":{"source":"https://pytest.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-14T11:06:03.295Z","confidence":0.6}},{"attribute":"features.capabilities","value":{"languages":"Python","assertions":true},"provenance":{"source":"https://pytest.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-14T11:06:03.295Z","confidence":0.6}},{"attribute":"market.availability","value":{"primaryMarkets":[],"availabilityScope":"global","availableCountries":[],"notAvailableCountries":[]},"provenance":{"source":"https://pytest.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-14T11:06:03.295Z","confidence":0.75}},{"attribute":"content.faq","value":[{"answer":"pytest is a testing framework for Python that enables developers to write simple, readable tests using plain assert statements. It supports everything from basic unit testing to complex functional testing and can automatically discover test files throughout a project directory.","source":"https://docs.pytest.org/en/stable/","question":"What is pytest and what is it primarily used for?","confidence":0.95},{"answer":"pytest is designed exclusively for Python and requires Python 3.10 or later, or PyPy 3. It does not provide testing support for other programming languages.","source":"https://docs.pytest.org/en/stable/","question":"What programming languages does pytest support?","confidence":0.95},{"answer":"pytest is open source software distributed under the MIT license and is completely free to use, modify, and distribute. There is no commercial version or paid tier.","source":"https://github.com/pytest-dev/pytest","question":"What is the license and cost model for pytest?","confidence":0.95},{"answer":"Fixtures are reusable test components that set up preconditions and provide test data through a dependency injection mechanism. They eliminate boilerplate setup and teardown code, improve test clarity by using explicit function parameters, and can be easily parametrized to run tests with multiple data sets.","source":"https://docs.pytest.org/en/stable/fixture.html","question":"What are pytest fixtures and why are they important?","confidence":0.95},{"answer":"pytest uses plain Python assert statements instead of unittest's specialized assertion methods like assertEqual(), provides more detailed introspection into failing assertions, and requires less boilerplate code. Both frameworks can coexist in a project, as pytest can run unittest test suites directly.","source":"https://docs.pytest.org/en/stable/","question":"How does pytest compare to Python's built-in unittest framework?","confidence":0.93},{"answer":"Yes, pytest can execute unittest and trial test suites natively without requiring any code changes. This allows teams to adopt pytest incrementally while maintaining compatibility with existing test code.","source":"https://docs.pytest.org/en/stable/","question":"Can pytest run existing unittest test suites without modification?","confidence":0.94},{"answer":"pytest features a robust plugin system with over 1,300 external plugins available that extend its functionality for CI/CD integration, coverage reporting, parallel execution, and other specialized testing needs. This makes pytest highly customizable for different project requirements.","source":"https://docs.pytest.org/en/stable/","question":"What is pytest's plugin architecture and how extensible is it?","confidence":0.92},{"answer":"pytest follows standard Python naming conventions, automatically locating and running test files named test_*.py or *_test.py, and test functions beginning with test_. This automatic discovery eliminates the need for manual test registration or configuration in most cases.","source":"https://docs.pytest.org/en/stable/","question":"How does pytest automatically discover and run tests?","confidence":0.94}],"provenance":{"source":"https://docs.pytest.org/en/stable/","sourceType":"vioscale-crawler","retrievedAt":"2026-07-30T12:43:01.703Z","confidence":0.94125}},{"attribute":"platform.support","value":{"cli":true},"provenance":{"source":"https://pytest.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-14T11:06:03.295Z","confidence":0.6}},{"attribute":"pricing.free_tier","value":true,"provenance":{"source":"https://pytest.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-05T12:43:06.488Z","confidence":0.6}},{"attribute":"deployment.options","value":{"self_hosted":true},"provenance":{"source":"https://pytest.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-14T11:06:03.295Z","confidence":0.6}},{"attribute":"description.long","value":"A testing framework for Python that enables developers to write readable, straightforward test cases while scaling to handle sophisticated functional testing requirements for applications and libraries.","provenance":{"source":"https://pytest.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-14T11:06:03.295Z","confidence":0.6}},{"attribute":"adoption.dependent_repos","value":283154,"provenance":{"source":"https://packages.ecosyste.ms/api/v1/packages/lookup?repository_url=https%3A%2F%2Fgithub.com%2Fpytest-dev%2Fpytest","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T17:40:26.740Z","confidence":0.85}},{"attribute":"language.primary","value":"Python","provenance":{"source":"https://github.com/pytest-dev/pytest","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T17:40:26.725Z","confidence":0.98}},{"attribute":"pricing.model","value":"commercial","provenance":{"source":"https://pytest.org","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T17:40:26.735Z","confidence":0.48}},{"attribute":"release.history","value":[{"url":"https://github.com/pytest-dev/pytest/releases/tag/9.1.1","date":"2026-06-19T10:58:55Z","type":"stable","version":"9.1.1"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/9.1.0","date":"2026-06-13T18:53:04Z","type":"stable","version":"9.1.0"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/9.0.3","date":"2026-04-07T17:16:45Z","type":"stable","version":"9.0.3"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/9.0.2","date":"2025-12-06T21:31:16Z","type":"stable","version":"9.0.2"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/9.0.1","date":"2025-11-12T13:05:30Z","type":"stable","version":"9.0.1"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/9.0.0","date":"2025-11-08T17:37:52Z","type":"stable","version":"9.0.0"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.4.2","date":"2025-09-04T14:35:52Z","type":"stable","version":"8.4.2"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.4.1","date":"2025-06-18T05:48:45Z","type":"stable","version":"8.4.1"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.4.0","date":"2025-06-02T17:37:58Z","type":"stable","version":"8.4.0"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.3.5","date":"2025-03-02T12:56:47Z","type":"stable","version":"8.3.5"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.3.4","date":"2024-12-01T13:01:48Z","type":"stable","version":"8.3.4"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.3.3","date":"2024-09-10T10:53:49Z","type":"stable","version":"8.3.3"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.3.2","date":"2024-07-25T10:40:33Z","type":"stable","version":"8.3.2"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.3.1","date":"2024-07-20T16:25:36Z","type":"stable","version":"8.3.1"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.3.0","date":"2024-07-20T15:33:08Z","type":"stable","version":"8.3.0"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.2.2","date":"2024-06-04T13:39:01Z","type":"stable","version":"8.2.2"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.2.1","date":"2024-05-19T19:08:47Z","type":"stable","version":"8.2.1"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.2.0","date":"2024-04-27T23:35:31Z","type":"stable","version":"8.2.0"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.1.2","date":"2024-04-26T18:05:59Z","type":"stable","version":"8.1.2"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.1.1","date":"2024-03-09T11:51:50Z","type":"stable","version":"8.1.1"}],"provenance":{"source":"https://github.com/pytest-dev/pytest/releases","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T17:40:26.725Z","confidence":0.7}},{"attribute":"security.scorecard","value":6.7,"provenance":{"source":"https://api.securityscorecards.dev/projects/github.com/pytest-dev/pytest","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T17:40:26.745Z","confidence":0.9}},{"attribute":"security.vulnerabilities","value":{"count":1,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=pypi&package_name=pytest&per_page=100","last_12m":1,"max_severity":"MODERATE"},"provenance":{"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=pypi&package_name=pytest&per_page=100","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T17:40:26.758Z","confidence":0.9}}],"faq":[{"answer":"pytest is a testing framework for Python that enables developers to write simple, readable tests using plain assert statements. It supports everything from basic unit testing to complex functional testing and can automatically discover test files throughout a project directory.","source":"https://docs.pytest.org/en/stable/","question":"What is pytest and what is it primarily used for?","confidence":0.95},{"answer":"pytest is designed exclusively for Python and requires Python 3.10 or later, or PyPy 3. It does not provide testing support for other programming languages.","source":"https://docs.pytest.org/en/stable/","question":"What programming languages does pytest support?","confidence":0.95},{"answer":"pytest is open source software distributed under the MIT license and is completely free to use, modify, and distribute. There is no commercial version or paid tier.","source":"https://github.com/pytest-dev/pytest","question":"What is the license and cost model for pytest?","confidence":0.95},{"answer":"Fixtures are reusable test components that set up preconditions and provide test data through a dependency injection mechanism. They eliminate boilerplate setup and teardown code, improve test clarity by using explicit function parameters, and can be easily parametrized to run tests with multiple data sets.","source":"https://docs.pytest.org/en/stable/fixture.html","question":"What are pytest fixtures and why are they important?","confidence":0.95},{"answer":"pytest uses plain Python assert statements instead of unittest's specialized assertion methods like assertEqual(), provides more detailed introspection into failing assertions, and requires less boilerplate code. Both frameworks can coexist in a project, as pytest can run unittest test suites directly.","source":"https://docs.pytest.org/en/stable/","question":"How does pytest compare to Python's built-in unittest framework?","confidence":0.93},{"answer":"Yes, pytest can execute unittest and trial test suites natively without requiring any code changes. This allows teams to adopt pytest incrementally while maintaining compatibility with existing test code.","source":"https://docs.pytest.org/en/stable/","question":"Can pytest run existing unittest test suites without modification?","confidence":0.94},{"answer":"pytest features a robust plugin system with over 1,300 external plugins available that extend its functionality for CI/CD integration, coverage reporting, parallel execution, and other specialized testing needs. This makes pytest highly customizable for different project requirements.","source":"https://docs.pytest.org/en/stable/","question":"What is pytest's plugin architecture and how extensible is it?","confidence":0.92},{"answer":"pytest follows standard Python naming conventions, automatically locating and running test files named test_*.py or *_test.py, and test functions beginning with test_. This automatic discovery eliminates the need for manual test registration or configuration in most cases.","source":"https://docs.pytest.org/en/stable/","question":"How does pytest automatically discover and run tests?","confidence":0.94}],"faqSource":"generated","market":{"availabilityScope":"global","availableCountries":[],"notAvailableCountries":[],"primaryMarkets":[]},"releaseHistory":[{"version":"9.1.1","date":"2026-06-19T10:58:55Z","url":"https://github.com/pytest-dev/pytest/releases/tag/9.1.1","type":"stable"},{"version":"9.1.0","date":"2026-06-13T18:53:04Z","url":"https://github.com/pytest-dev/pytest/releases/tag/9.1.0","type":"stable"},{"version":"9.0.3","date":"2026-04-07T17:16:45Z","url":"https://github.com/pytest-dev/pytest/releases/tag/9.0.3","type":"stable"},{"version":"9.0.2","date":"2025-12-06T21:31:16Z","url":"https://github.com/pytest-dev/pytest/releases/tag/9.0.2","type":"stable"},{"version":"9.0.1","date":"2025-11-12T13:05:30Z","url":"https://github.com/pytest-dev/pytest/releases/tag/9.0.1","type":"stable"},{"version":"9.0.0","date":"2025-11-08T17:37:52Z","url":"https://github.com/pytest-dev/pytest/releases/tag/9.0.0","type":"stable"},{"version":"8.4.2","date":"2025-09-04T14:35:52Z","url":"https://github.com/pytest-dev/pytest/releases/tag/8.4.2","type":"stable"},{"version":"8.4.1","date":"2025-06-18T05:48:45Z","url":"https://github.com/pytest-dev/pytest/releases/tag/8.4.1","type":"stable"},{"version":"8.4.0","date":"2025-06-02T17:37:58Z","url":"https://github.com/pytest-dev/pytest/releases/tag/8.4.0","type":"stable"},{"version":"8.3.5","date":"2025-03-02T12:56:47Z","url":"https://github.com/pytest-dev/pytest/releases/tag/8.3.5","type":"stable"},{"version":"8.3.4","date":"2024-12-01T13:01:48Z","url":"https://github.com/pytest-dev/pytest/releases/tag/8.3.4","type":"stable"},{"version":"8.3.3","date":"2024-09-10T10:53:49Z","url":"https://github.com/pytest-dev/pytest/releases/tag/8.3.3","type":"stable"},{"version":"8.3.2","date":"2024-07-25T10:40:33Z","url":"https://github.com/pytest-dev/pytest/releases/tag/8.3.2","type":"stable"},{"version":"8.3.1","date":"2024-07-20T16:25:36Z","url":"https://github.com/pytest-dev/pytest/releases/tag/8.3.1","type":"stable"},{"version":"8.3.0","date":"2024-07-20T15:33:08Z","url":"https://github.com/pytest-dev/pytest/releases/tag/8.3.0","type":"stable"},{"version":"8.2.2","date":"2024-06-04T13:39:01Z","url":"https://github.com/pytest-dev/pytest/releases/tag/8.2.2","type":"stable"},{"version":"8.2.1","date":"2024-05-19T19:08:47Z","url":"https://github.com/pytest-dev/pytest/releases/tag/8.2.1","type":"stable"},{"version":"8.2.0","date":"2024-04-27T23:35:31Z","url":"https://github.com/pytest-dev/pytest/releases/tag/8.2.0","type":"stable"},{"version":"8.1.2","date":"2024-04-26T18:05:59Z","url":"https://github.com/pytest-dev/pytest/releases/tag/8.1.2","type":"stable"},{"version":"8.1.1","date":"2024-03-09T11:51:50Z","url":"https://github.com/pytest-dev/pytest/releases/tag/8.1.1","type":"stable"}],"vulnerabilities":{"count":1,"last12m":1,"maxSeverity":"MODERATE","source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=pypi&package_name=pytest&per_page=100"},"claimed":false,"updatedAt":"2026-09-10T17:47:08.070Z","formats":{"json":"https://www.vioscale.ai/api/v1/software/pytest","markdown":"https://www.vioscale.ai/software/pytest.md","html":"https://www.vioscale.ai/software/pytest"}},{"slug":"robot-framework","name":"Robot Framework","tagline":"","homepage":"https://robotframework.org","category":{"slug":"testing-tools","name":"Testing Tools"},"vendor":null,"score":{"composite":54.9,"confidence":0.43,"confidenceBand":"low","breakdown":{"capabilities":{"value":28.9,"weight":0.083,"present":true,"contribution":2.4},"repo_stars":{"value":76.9,"weight":0.033,"present":true,"contribution":2.5},"integrations":{"value":0,"weight":0.053,"present":false,"contribution":0},"dependent_projects":{"value":56.9,"weight":0.08,"present":true,"contribution":4.6},"dev_activity":{"value":60.7,"weight":0.12,"present":true,"contribution":7.3},"release_cadence":{"value":90.6,"weight":0.067,"present":true,"contribution":6.1},"security_posture":{"value":0,"weight":0.087,"present":false,"contribution":0},"package_downloads":{"value":0,"weight":0.173,"present":false,"contribution":0},"security_score":{"value":42,"weight":0.053,"present":true,"contribution":2.2},"community_qa_activity":{"value":0,"weight":0.08,"present":false,"contribution":0}},"computedAt":"2026-09-08T22:06:58.075Z","stale":false},"uri":"https://www.vioscale.ai/software/robot-framework","aliases":["robot-framework"],"status":"published","crawlStatus":"ok","indexStatus":"indexed","nextCrawlAt":"2026-09-22T22:06:58.273Z","categories":[{"slug":"testing-tools","name":"Testing Tools","isPrimary":true}],"facts":{"description":[{"attribute":"description.long","value":"Open source automation framework for test automation and robotic process automation (RPA). Features human-friendly syntax using keywords and supports extending through libraries in Python, Java, and other languages.","provenance":{"source":"https://robotframework.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-03T13:02:17.248Z","confidence":0.6}}],"features":[{"attribute":"features.capabilities","value":{"languages":"Python, Java, and other languages (for library extensions)","ci_integration":true},"provenance":{"source":"https://robotframework.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-16T21:31:59.193Z","confidence":0.6}}],"pricing":[{"attribute":"pricing","value":{"type":"open_source","freeTier":true,"sourceUrl":"https://robotframework.org","retrievedAt":"2026-08-16T21:31:59.193Z"},"provenance":{"source":"https://robotframework.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-16T21:31:59.193Z","confidence":0.6}},{"attribute":"pricing.free_tier","value":true,"provenance":{"source":"https://robotframework.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-16T21:31:59.193Z","confidence":0.6}},{"attribute":"pricing.model","value":"commercial","provenance":{"source":"https://robotframework.org","sourceType":"vioscale-crawler","retrievedAt":"2026-09-08T22:03:14.923Z","confidence":0.4}},{"attribute":"pricing.price_level","value":"free","provenance":{"source":"https://robotframework.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-16T21:31:59.193Z","confidence":0.6}},{"attribute":"pricing.transparent","value":true,"provenance":{"source":"https://robotframework.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-16T21:31:59.193Z","confidence":0.6}}],"activity":[{"attribute":"activity.commits_last_30d","value":84,"provenance":{"source":"https://github.com/robotframework/robotframework/pulse","sourceType":"vioscale-crawler","retrievedAt":"2026-09-08T22:03:14.903Z","confidence":0.65}}],"adoption":[{"attribute":"adoption.dependent_repos","value":2593,"provenance":{"source":"https://packages.ecosyste.ms/api/v1/packages/lookup?repository_url=https%3A%2F%2Fgithub.com%2Frobotframework%2Frobotframework","sourceType":"vioscale-crawler","retrievedAt":"2026-09-08T22:03:14.962Z","confidence":0.85}},{"attribute":"adoption.github_stars","value":11872,"provenance":{"source":"https://github.com/robotframework/robotframework","sourceType":"vioscale-crawler","retrievedAt":"2026-09-08T22:03:14.903Z","confidence":0.9}}],"language":[{"attribute":"language.primary","value":"Python","provenance":{"source":"https://github.com/robotframework/robotframework","sourceType":"vioscale-crawler","retrievedAt":"2026-09-08T22:03:14.903Z","confidence":0.9}}],"license":[{"attribute":"license.spdx","value":"Apache-2.0","provenance":{"source":"https://github.com/robotframework/robotframework","sourceType":"vioscale-crawler","retrievedAt":"2026-09-08T22:03:14.903Z","confidence":0.95}}],"release":[{"attribute":"release.cadence_days","value":17,"provenance":{"source":"https://github.com/robotframework/robotframework/releases","sourceType":"vioscale-crawler","retrievedAt":"2026-09-08T22:03:14.903Z","confidence":0.7}},{"attribute":"release.history","value":[{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.5rc1","date":"2026-09-04T08:28:54Z","type":"prerelease","version":"v7.5rc1"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.5b1","date":"2026-07-17T16:21:06Z","type":"prerelease","version":"v7.5b1"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.4.2","date":"2026-03-03T16:50:54Z","type":"stable","version":"v7.4.2"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.4.1","date":"2025-12-23T17:07:11Z","type":"stable","version":"v7.4.1"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.4","date":"2025-12-12T11:10:11Z","type":"stable","version":"v7.4"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.4rc2","date":"2025-12-09T20:32:44Z","type":"prerelease","version":"v7.4rc2"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.4rc1","date":"2025-12-09T20:31:49Z","type":"prerelease","version":"v7.4rc1"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.4b2","date":"2025-11-08T22:32:41Z","type":"prerelease","version":"v7.4b2"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.4b1","date":"2025-10-07T13:23:23Z","type":"prerelease","version":"v7.4b1"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.3.2","date":"2025-07-04T14:43:52Z","type":"stable","version":"v7.3.2"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.3.1","date":"2025-06-16T15:02:51Z","type":"stable","version":"v7.3.1"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.3","date":"2025-05-30T14:53:24Z","type":"stable","version":"v7.3"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.3rc3","date":"2025-05-21T11:57:49Z","type":"prerelease","version":"v7.3rc3"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.3rc2","date":"2025-05-19T21:06:06Z","type":"prerelease","version":"v7.3rc2"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.3rc1","date":"2025-05-08T22:33:04Z","type":"prerelease","version":"v7.3rc1"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.2.2","date":"2025-02-07T21:03:43Z","type":"stable","version":"v7.2.2"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.2.1","date":"2025-02-07T21:01:48Z","type":"stable","version":"v7.2.1"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.2","date":"2025-01-14T14:54:23Z","type":"stable","version":"v7.2"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.2rc1","date":"2024-12-31T09:49:10Z","type":"prerelease","version":"v7.2rc1"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.2b1","date":"2024-12-18T22:38:41Z","type":"prerelease","version":"v7.2b1"}],"provenance":{"source":"https://github.com/robotframework/robotframework/releases","sourceType":"vioscale-crawler","retrievedAt":"2026-09-08T22:03:14.903Z","confidence":0.7}}],"security":[{"attribute":"security.scorecard","value":4.2,"provenance":{"source":"https://api.securityscorecards.dev/projects/github.com/robotframework/robotframework","sourceType":"vioscale-crawler","retrievedAt":"2026-09-08T22:03:14.974Z","confidence":0.9}},{"attribute":"security.vulnerabilities","value":{"count":0,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=pypi&package_name=robotframework&per_page=100","last_12m":0,"max_severity":null},"provenance":{"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=pypi&package_name=robotframework&per_page=100","sourceType":"vioscale-crawler","retrievedAt":"2026-09-08T22:03:14.993Z","confidence":0.9}}],"content":[{"attribute":"content.faq","value":[{"answer":"Open source automation framework for test automation and robotic process automation (RPA). Features human-friendly syntax using keywords and supports extending through libraries in Python, Java, and other languages. It is indexed under Testing Tools.","source":"https://robotframework.org","question":"What is Robot Framework?","confidence":0.6},{"answer":"Robot Framework is open source, so it can be self-hosted and used at no licence cost. It is released under the Apache-2.0 licence. Pricing changes often, so verify at source before relying on it.","source":"https://robotframework.org","question":"Is Robot Framework free to use?","confidence":0.6},{"answer":"Yes. Robot Framework is published under the Apache-2.0 licence, a permissive licence that generally allows commercial use and modification. Licence terms can change between releases, so verify against the repository for the version you intend to use.","source":"https://github.com/robotframework/robotframework","question":"Is Robot Framework open source?","confidence":0.95}],"provenance":{"source":"https://robotframework.org","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T10:20:56.489Z","confidence":0.71666664}}]},"factList":[{"attribute":"description.long","value":"Open source automation framework for test automation and robotic process automation (RPA). Features human-friendly syntax using keywords and supports extending through libraries in Python, Java, and other languages.","provenance":{"source":"https://robotframework.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-03T13:02:17.248Z","confidence":0.6}},{"attribute":"features.capabilities","value":{"languages":"Python, Java, and other languages (for library extensions)","ci_integration":true},"provenance":{"source":"https://robotframework.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-16T21:31:59.193Z","confidence":0.6}},{"attribute":"pricing","value":{"type":"open_source","freeTier":true,"sourceUrl":"https://robotframework.org","retrievedAt":"2026-08-16T21:31:59.193Z"},"provenance":{"source":"https://robotframework.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-16T21:31:59.193Z","confidence":0.6}},{"attribute":"pricing.free_tier","value":true,"provenance":{"source":"https://robotframework.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-16T21:31:59.193Z","confidence":0.6}},{"attribute":"pricing.model","value":"commercial","provenance":{"source":"https://robotframework.org","sourceType":"vioscale-crawler","retrievedAt":"2026-09-08T22:03:14.923Z","confidence":0.4}},{"attribute":"pricing.price_level","value":"free","provenance":{"source":"https://robotframework.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-16T21:31:59.193Z","confidence":0.6}},{"attribute":"pricing.transparent","value":true,"provenance":{"source":"https://robotframework.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-16T21:31:59.193Z","confidence":0.6}},{"attribute":"activity.commits_last_30d","value":84,"provenance":{"source":"https://github.com/robotframework/robotframework/pulse","sourceType":"vioscale-crawler","retrievedAt":"2026-09-08T22:03:14.903Z","confidence":0.65}},{"attribute":"adoption.dependent_repos","value":2593,"provenance":{"source":"https://packages.ecosyste.ms/api/v1/packages/lookup?repository_url=https%3A%2F%2Fgithub.com%2Frobotframework%2Frobotframework","sourceType":"vioscale-crawler","retrievedAt":"2026-09-08T22:03:14.962Z","confidence":0.85}},{"attribute":"adoption.github_stars","value":11872,"provenance":{"source":"https://github.com/robotframework/robotframework","sourceType":"vioscale-crawler","retrievedAt":"2026-09-08T22:03:14.903Z","confidence":0.9}},{"attribute":"language.primary","value":"Python","provenance":{"source":"https://github.com/robotframework/robotframework","sourceType":"vioscale-crawler","retrievedAt":"2026-09-08T22:03:14.903Z","confidence":0.9}},{"attribute":"license.spdx","value":"Apache-2.0","provenance":{"source":"https://github.com/robotframework/robotframework","sourceType":"vioscale-crawler","retrievedAt":"2026-09-08T22:03:14.903Z","confidence":0.95}},{"attribute":"release.cadence_days","value":17,"provenance":{"source":"https://github.com/robotframework/robotframework/releases","sourceType":"vioscale-crawler","retrievedAt":"2026-09-08T22:03:14.903Z","confidence":0.7}},{"attribute":"release.history","value":[{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.5rc1","date":"2026-09-04T08:28:54Z","type":"prerelease","version":"v7.5rc1"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.5b1","date":"2026-07-17T16:21:06Z","type":"prerelease","version":"v7.5b1"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.4.2","date":"2026-03-03T16:50:54Z","type":"stable","version":"v7.4.2"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.4.1","date":"2025-12-23T17:07:11Z","type":"stable","version":"v7.4.1"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.4","date":"2025-12-12T11:10:11Z","type":"stable","version":"v7.4"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.4rc2","date":"2025-12-09T20:32:44Z","type":"prerelease","version":"v7.4rc2"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.4rc1","date":"2025-12-09T20:31:49Z","type":"prerelease","version":"v7.4rc1"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.4b2","date":"2025-11-08T22:32:41Z","type":"prerelease","version":"v7.4b2"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.4b1","date":"2025-10-07T13:23:23Z","type":"prerelease","version":"v7.4b1"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.3.2","date":"2025-07-04T14:43:52Z","type":"stable","version":"v7.3.2"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.3.1","date":"2025-06-16T15:02:51Z","type":"stable","version":"v7.3.1"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.3","date":"2025-05-30T14:53:24Z","type":"stable","version":"v7.3"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.3rc3","date":"2025-05-21T11:57:49Z","type":"prerelease","version":"v7.3rc3"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.3rc2","date":"2025-05-19T21:06:06Z","type":"prerelease","version":"v7.3rc2"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.3rc1","date":"2025-05-08T22:33:04Z","type":"prerelease","version":"v7.3rc1"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.2.2","date":"2025-02-07T21:03:43Z","type":"stable","version":"v7.2.2"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.2.1","date":"2025-02-07T21:01:48Z","type":"stable","version":"v7.2.1"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.2","date":"2025-01-14T14:54:23Z","type":"stable","version":"v7.2"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.2rc1","date":"2024-12-31T09:49:10Z","type":"prerelease","version":"v7.2rc1"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.2b1","date":"2024-12-18T22:38:41Z","type":"prerelease","version":"v7.2b1"}],"provenance":{"source":"https://github.com/robotframework/robotframework/releases","sourceType":"vioscale-crawler","retrievedAt":"2026-09-08T22:03:14.903Z","confidence":0.7}},{"attribute":"security.scorecard","value":4.2,"provenance":{"source":"https://api.securityscorecards.dev/projects/github.com/robotframework/robotframework","sourceType":"vioscale-crawler","retrievedAt":"2026-09-08T22:03:14.974Z","confidence":0.9}},{"attribute":"security.vulnerabilities","value":{"count":0,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=pypi&package_name=robotframework&per_page=100","last_12m":0,"max_severity":null},"provenance":{"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=pypi&package_name=robotframework&per_page=100","sourceType":"vioscale-crawler","retrievedAt":"2026-09-08T22:03:14.993Z","confidence":0.9}},{"attribute":"content.faq","value":[{"answer":"Open source automation framework for test automation and robotic process automation (RPA). Features human-friendly syntax using keywords and supports extending through libraries in Python, Java, and other languages. It is indexed under Testing Tools.","source":"https://robotframework.org","question":"What is Robot Framework?","confidence":0.6},{"answer":"Robot Framework is open source, so it can be self-hosted and used at no licence cost. It is released under the Apache-2.0 licence. Pricing changes often, so verify at source before relying on it.","source":"https://robotframework.org","question":"Is Robot Framework free to use?","confidence":0.6},{"answer":"Yes. Robot Framework is published under the Apache-2.0 licence, a permissive licence that generally allows commercial use and modification. Licence terms can change between releases, so verify against the repository for the version you intend to use.","source":"https://github.com/robotframework/robotframework","question":"Is Robot Framework open source?","confidence":0.95}],"provenance":{"source":"https://robotframework.org","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T10:20:56.489Z","confidence":0.71666664}}],"faq":[{"answer":"Open source automation framework for test automation and robotic process automation (RPA). Features human-friendly syntax using keywords and supports extending through libraries in Python, Java, and other languages. It is indexed under Testing Tools.","source":"https://robotframework.org","question":"What is Robot Framework?","confidence":0.6},{"answer":"Robot Framework is open source, so it can be self-hosted and used at no licence cost. It is released under the Apache-2.0 licence. Pricing changes often, so verify at source before relying on it.","source":"https://robotframework.org","question":"Is Robot Framework free to use?","confidence":0.6},{"answer":"Yes. Robot Framework is published under the Apache-2.0 licence, a permissive licence that generally allows commercial use and modification. Licence terms can change between releases, so verify against the repository for the version you intend to use.","source":"https://github.com/robotframework/robotframework","question":"Is Robot Framework open source?","confidence":0.95}],"faqSource":"generated","releaseHistory":[{"version":"v7.5rc1","date":"2026-09-04T08:28:54Z","url":"https://github.com/robotframework/robotframework/releases/tag/v7.5rc1","type":"prerelease"},{"version":"v7.5b1","date":"2026-07-17T16:21:06Z","url":"https://github.com/robotframework/robotframework/releases/tag/v7.5b1","type":"prerelease"},{"version":"v7.4.2","date":"2026-03-03T16:50:54Z","url":"https://github.com/robotframework/robotframework/releases/tag/v7.4.2","type":"stable"},{"version":"v7.4.1","date":"2025-12-23T17:07:11Z","url":"https://github.com/robotframework/robotframework/releases/tag/v7.4.1","type":"stable"},{"version":"v7.4","date":"2025-12-12T11:10:11Z","url":"https://github.com/robotframework/robotframework/releases/tag/v7.4","type":"stable"},{"version":"v7.4rc2","date":"2025-12-09T20:32:44Z","url":"https://github.com/robotframework/robotframework/releases/tag/v7.4rc2","type":"prerelease"},{"version":"v7.4rc1","date":"2025-12-09T20:31:49Z","url":"https://github.com/robotframework/robotframework/releases/tag/v7.4rc1","type":"prerelease"},{"version":"v7.4b2","date":"2025-11-08T22:32:41Z","url":"https://github.com/robotframework/robotframework/releases/tag/v7.4b2","type":"prerelease"},{"version":"v7.4b1","date":"2025-10-07T13:23:23Z","url":"https://github.com/robotframework/robotframework/releases/tag/v7.4b1","type":"prerelease"},{"version":"v7.3.2","date":"2025-07-04T14:43:52Z","url":"https://github.com/robotframework/robotframework/releases/tag/v7.3.2","type":"stable"},{"version":"v7.3.1","date":"2025-06-16T15:02:51Z","url":"https://github.com/robotframework/robotframework/releases/tag/v7.3.1","type":"stable"},{"version":"v7.3","date":"2025-05-30T14:53:24Z","url":"https://github.com/robotframework/robotframework/releases/tag/v7.3","type":"stable"},{"version":"v7.3rc3","date":"2025-05-21T11:57:49Z","url":"https://github.com/robotframework/robotframework/releases/tag/v7.3rc3","type":"prerelease"},{"version":"v7.3rc2","date":"2025-05-19T21:06:06Z","url":"https://github.com/robotframework/robotframework/releases/tag/v7.3rc2","type":"prerelease"},{"version":"v7.3rc1","date":"2025-05-08T22:33:04Z","url":"https://github.com/robotframework/robotframework/releases/tag/v7.3rc1","type":"prerelease"},{"version":"v7.2.2","date":"2025-02-07T21:03:43Z","url":"https://github.com/robotframework/robotframework/releases/tag/v7.2.2","type":"stable"},{"version":"v7.2.1","date":"2025-02-07T21:01:48Z","url":"https://github.com/robotframework/robotframework/releases/tag/v7.2.1","type":"stable"},{"version":"v7.2","date":"2025-01-14T14:54:23Z","url":"https://github.com/robotframework/robotframework/releases/tag/v7.2","type":"stable"},{"version":"v7.2rc1","date":"2024-12-31T09:49:10Z","url":"https://github.com/robotframework/robotframework/releases/tag/v7.2rc1","type":"prerelease"},{"version":"v7.2b1","date":"2024-12-18T22:38:41Z","url":"https://github.com/robotframework/robotframework/releases/tag/v7.2b1","type":"prerelease"}],"vulnerabilities":{"count":0,"last12m":0,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=pypi&package_name=robotframework&per_page=100"},"claimed":false,"updatedAt":"2026-09-08T22:06:58.273Z","formats":{"json":"https://www.vioscale.ai/api/v1/software/robot-framework","markdown":"https://www.vioscale.ai/software/robot-framework.md","html":"https://www.vioscale.ai/software/robot-framework"}}],"attributes":[{"attribute":"activity.commits_last_30d","values":{"pytest":{"attribute":"activity.commits_last_30d","value":99,"provenance":{"source":"https://github.com/pytest-dev/pytest/pulse","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T17:40:26.725Z","confidence":0.65}},"robot-framework":{"attribute":"activity.commits_last_30d","value":84,"provenance":{"source":"https://github.com/robotframework/robotframework/pulse","sourceType":"vioscale-crawler","retrievedAt":"2026-09-08T22:03:14.903Z","confidence":0.65}}}},{"attribute":"adoption.dependent_repos","values":{"pytest":{"attribute":"adoption.dependent_repos","value":283154,"provenance":{"source":"https://packages.ecosyste.ms/api/v1/packages/lookup?repository_url=https%3A%2F%2Fgithub.com%2Fpytest-dev%2Fpytest","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T17:40:26.740Z","confidence":0.85}},"robot-framework":{"attribute":"adoption.dependent_repos","value":2593,"provenance":{"source":"https://packages.ecosyste.ms/api/v1/packages/lookup?repository_url=https%3A%2F%2Fgithub.com%2Frobotframework%2Frobotframework","sourceType":"vioscale-crawler","retrievedAt":"2026-09-08T22:03:14.962Z","confidence":0.85}}}},{"attribute":"adoption.github_stars","values":{"pytest":{"attribute":"adoption.github_stars","value":14495,"provenance":{"source":"https://github.com/pytest-dev/pytest","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T17:40:26.725Z","confidence":0.9}},"robot-framework":{"attribute":"adoption.github_stars","value":11872,"provenance":{"source":"https://github.com/robotframework/robotframework","sourceType":"vioscale-crawler","retrievedAt":"2026-09-08T22:03:14.903Z","confidence":0.9}}}},{"attribute":"adoption.package_downloads_weekly","values":{"pytest":{"attribute":"adoption.package_downloads_weekly","value":237782854,"provenance":{"source":"https://pypistats.org/packages/pytest","sourceType":"vioscale-crawler","retrievedAt":"2026-08-26T18:38:03.824Z","confidence":0.85}},"robot-framework":null}},{"attribute":"adoption.stackoverflow_questions","values":{"pytest":{"attribute":"adoption.stackoverflow_questions","value":30000,"provenance":{"source":"https://stackoverflow.com/questions/tagged/pytest","sourceType":"vioscale-crawler","retrievedAt":"2026-07-30T10:06:46.477Z","confidence":0.75}},"robot-framework":null}},{"attribute":"content.faq","values":{"pytest":{"attribute":"content.faq","value":[{"answer":"pytest is a testing framework for Python that enables developers to write simple, readable tests using plain assert statements. It supports everything from basic unit testing to complex functional testing and can automatically discover test files throughout a project directory.","source":"https://docs.pytest.org/en/stable/","question":"What is pytest and what is it primarily used for?","confidence":0.95},{"answer":"pytest is designed exclusively for Python and requires Python 3.10 or later, or PyPy 3. It does not provide testing support for other programming languages.","source":"https://docs.pytest.org/en/stable/","question":"What programming languages does pytest support?","confidence":0.95},{"answer":"pytest is open source software distributed under the MIT license and is completely free to use, modify, and distribute. There is no commercial version or paid tier.","source":"https://github.com/pytest-dev/pytest","question":"What is the license and cost model for pytest?","confidence":0.95},{"answer":"Fixtures are reusable test components that set up preconditions and provide test data through a dependency injection mechanism. They eliminate boilerplate setup and teardown code, improve test clarity by using explicit function parameters, and can be easily parametrized to run tests with multiple data sets.","source":"https://docs.pytest.org/en/stable/fixture.html","question":"What are pytest fixtures and why are they important?","confidence":0.95},{"answer":"pytest uses plain Python assert statements instead of unittest's specialized assertion methods like assertEqual(), provides more detailed introspection into failing assertions, and requires less boilerplate code. Both frameworks can coexist in a project, as pytest can run unittest test suites directly.","source":"https://docs.pytest.org/en/stable/","question":"How does pytest compare to Python's built-in unittest framework?","confidence":0.93},{"answer":"Yes, pytest can execute unittest and trial test suites natively without requiring any code changes. This allows teams to adopt pytest incrementally while maintaining compatibility with existing test code.","source":"https://docs.pytest.org/en/stable/","question":"Can pytest run existing unittest test suites without modification?","confidence":0.94},{"answer":"pytest features a robust plugin system with over 1,300 external plugins available that extend its functionality for CI/CD integration, coverage reporting, parallel execution, and other specialized testing needs. This makes pytest highly customizable for different project requirements.","source":"https://docs.pytest.org/en/stable/","question":"What is pytest's plugin architecture and how extensible is it?","confidence":0.92},{"answer":"pytest follows standard Python naming conventions, automatically locating and running test files named test_*.py or *_test.py, and test functions beginning with test_. This automatic discovery eliminates the need for manual test registration or configuration in most cases.","source":"https://docs.pytest.org/en/stable/","question":"How does pytest automatically discover and run tests?","confidence":0.94}],"provenance":{"source":"https://docs.pytest.org/en/stable/","sourceType":"vioscale-crawler","retrievedAt":"2026-07-30T12:43:01.703Z","confidence":0.94125}},"robot-framework":{"attribute":"content.faq","value":[{"answer":"Open source automation framework for test automation and robotic process automation (RPA). Features human-friendly syntax using keywords and supports extending through libraries in Python, Java, and other languages. It is indexed under Testing Tools.","source":"https://robotframework.org","question":"What is Robot Framework?","confidence":0.6},{"answer":"Robot Framework is open source, so it can be self-hosted and used at no licence cost. It is released under the Apache-2.0 licence. Pricing changes often, so verify at source before relying on it.","source":"https://robotframework.org","question":"Is Robot Framework free to use?","confidence":0.6},{"answer":"Yes. Robot Framework is published under the Apache-2.0 licence, a permissive licence that generally allows commercial use and modification. Licence terms can change between releases, so verify against the repository for the version you intend to use.","source":"https://github.com/robotframework/robotframework","question":"Is Robot Framework open source?","confidence":0.95}],"provenance":{"source":"https://robotframework.org","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T10:20:56.489Z","confidence":0.71666664}}}},{"attribute":"deployment.options","values":{"pytest":{"attribute":"deployment.options","value":{"self_hosted":true},"provenance":{"source":"https://pytest.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-14T11:06:03.295Z","confidence":0.6}},"robot-framework":null}},{"attribute":"description.long","values":{"pytest":{"attribute":"description.long","value":"A testing framework for Python that enables developers to write readable, straightforward test cases while scaling to handle sophisticated functional testing requirements for applications and libraries.","provenance":{"source":"https://pytest.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-14T11:06:03.295Z","confidence":0.6}},"robot-framework":{"attribute":"description.long","value":"Open source automation framework for test automation and robotic process automation (RPA). Features human-friendly syntax using keywords and supports extending through libraries in Python, Java, and other languages.","provenance":{"source":"https://robotframework.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-03T13:02:17.248Z","confidence":0.6}}}},{"attribute":"features.capabilities","values":{"pytest":{"attribute":"features.capabilities","value":{"languages":"Python","assertions":true},"provenance":{"source":"https://pytest.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-14T11:06:03.295Z","confidence":0.6}},"robot-framework":{"attribute":"features.capabilities","value":{"languages":"Python, Java, and other languages (for library extensions)","ci_integration":true},"provenance":{"source":"https://robotframework.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-16T21:31:59.193Z","confidence":0.6}}}},{"attribute":"language.primary","values":{"pytest":{"attribute":"language.primary","value":"Python","provenance":{"source":"https://github.com/pytest-dev/pytest","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T17:40:26.725Z","confidence":0.98}},"robot-framework":{"attribute":"language.primary","value":"Python","provenance":{"source":"https://github.com/robotframework/robotframework","sourceType":"vioscale-crawler","retrievedAt":"2026-09-08T22:03:14.903Z","confidence":0.9}}}},{"attribute":"license.spdx","values":{"pytest":{"attribute":"license.spdx","value":"MIT","provenance":{"source":"https://github.com/pytest-dev/pytest","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T17:40:26.725Z","confidence":0.99}},"robot-framework":{"attribute":"license.spdx","value":"Apache-2.0","provenance":{"source":"https://github.com/robotframework/robotframework","sourceType":"vioscale-crawler","retrievedAt":"2026-09-08T22:03:14.903Z","confidence":0.95}}}},{"attribute":"market.availability","values":{"pytest":{"attribute":"market.availability","value":{"primaryMarkets":[],"availabilityScope":"global","availableCountries":[],"notAvailableCountries":[]},"provenance":{"source":"https://pytest.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-14T11:06:03.295Z","confidence":0.75}},"robot-framework":null}},{"attribute":"platform.support","values":{"pytest":{"attribute":"platform.support","value":{"cli":true},"provenance":{"source":"https://pytest.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-14T11:06:03.295Z","confidence":0.6}},"robot-framework":null}},{"attribute":"pricing","values":{"pytest":{"attribute":"pricing","value":{"type":"open_source","plans":[{"free":true,"name":"Community (Open Source)","features":["Detailed assertion introspection","Auto-discovery of test modules","Modular fixtures","unittest compatibility","1300+ external plugins"],"contactSales":false},{"free":false,"name":"Enterprise Support","description":"Available via Tidelift Subscription for commercial support and maintenance","contactSales":true}],"summary":"Free and open source. Enterprise support available via Tidelift.","freeTier":true,"sourceUrl":"https://pytest.org","retrievedAt":"2026-07-08T12:05:17.943Z"},"provenance":{"source":"https://pytest.org","sourceType":"vioscale-crawler","retrievedAt":"2026-07-08T12:05:17.943Z","confidence":0.6}},"robot-framework":{"attribute":"pricing","value":{"type":"open_source","freeTier":true,"sourceUrl":"https://robotframework.org","retrievedAt":"2026-08-16T21:31:59.193Z"},"provenance":{"source":"https://robotframework.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-16T21:31:59.193Z","confidence":0.6}}}},{"attribute":"pricing.free_tier","values":{"pytest":{"attribute":"pricing.free_tier","value":true,"provenance":{"source":"https://pytest.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-05T12:43:06.488Z","confidence":0.6}},"robot-framework":{"attribute":"pricing.free_tier","value":true,"provenance":{"source":"https://robotframework.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-16T21:31:59.193Z","confidence":0.6}}}},{"attribute":"pricing.model","values":{"pytest":{"attribute":"pricing.model","value":"commercial","provenance":{"source":"https://pytest.org","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T17:40:26.735Z","confidence":0.48}},"robot-framework":{"attribute":"pricing.model","value":"commercial","provenance":{"source":"https://robotframework.org","sourceType":"vioscale-crawler","retrievedAt":"2026-09-08T22:03:14.923Z","confidence":0.4}}}},{"attribute":"pricing.price_level","values":{"pytest":{"attribute":"pricing.price_level","value":"free","provenance":{"source":"https://pytest.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-14T11:06:03.295Z","confidence":0.6}},"robot-framework":{"attribute":"pricing.price_level","value":"free","provenance":{"source":"https://robotframework.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-16T21:31:59.193Z","confidence":0.6}}}},{"attribute":"pricing.transparent","values":{"pytest":null,"robot-framework":{"attribute":"pricing.transparent","value":true,"provenance":{"source":"https://robotframework.org","sourceType":"vioscale-crawler","retrievedAt":"2026-08-16T21:31:59.193Z","confidence":0.6}}}},{"attribute":"release.cadence_days","values":{"pytest":{"attribute":"release.cadence_days","value":46,"provenance":{"source":"https://github.com/pytest-dev/pytest/releases","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T17:40:26.725Z","confidence":0.7}},"robot-framework":{"attribute":"release.cadence_days","value":17,"provenance":{"source":"https://github.com/robotframework/robotframework/releases","sourceType":"vioscale-crawler","retrievedAt":"2026-09-08T22:03:14.903Z","confidence":0.7}}}},{"attribute":"release.history","values":{"pytest":{"attribute":"release.history","value":[{"url":"https://github.com/pytest-dev/pytest/releases/tag/9.1.1","date":"2026-06-19T10:58:55Z","type":"stable","version":"9.1.1"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/9.1.0","date":"2026-06-13T18:53:04Z","type":"stable","version":"9.1.0"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/9.0.3","date":"2026-04-07T17:16:45Z","type":"stable","version":"9.0.3"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/9.0.2","date":"2025-12-06T21:31:16Z","type":"stable","version":"9.0.2"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/9.0.1","date":"2025-11-12T13:05:30Z","type":"stable","version":"9.0.1"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/9.0.0","date":"2025-11-08T17:37:52Z","type":"stable","version":"9.0.0"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.4.2","date":"2025-09-04T14:35:52Z","type":"stable","version":"8.4.2"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.4.1","date":"2025-06-18T05:48:45Z","type":"stable","version":"8.4.1"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.4.0","date":"2025-06-02T17:37:58Z","type":"stable","version":"8.4.0"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.3.5","date":"2025-03-02T12:56:47Z","type":"stable","version":"8.3.5"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.3.4","date":"2024-12-01T13:01:48Z","type":"stable","version":"8.3.4"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.3.3","date":"2024-09-10T10:53:49Z","type":"stable","version":"8.3.3"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.3.2","date":"2024-07-25T10:40:33Z","type":"stable","version":"8.3.2"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.3.1","date":"2024-07-20T16:25:36Z","type":"stable","version":"8.3.1"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.3.0","date":"2024-07-20T15:33:08Z","type":"stable","version":"8.3.0"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.2.2","date":"2024-06-04T13:39:01Z","type":"stable","version":"8.2.2"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.2.1","date":"2024-05-19T19:08:47Z","type":"stable","version":"8.2.1"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.2.0","date":"2024-04-27T23:35:31Z","type":"stable","version":"8.2.0"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.1.2","date":"2024-04-26T18:05:59Z","type":"stable","version":"8.1.2"},{"url":"https://github.com/pytest-dev/pytest/releases/tag/8.1.1","date":"2024-03-09T11:51:50Z","type":"stable","version":"8.1.1"}],"provenance":{"source":"https://github.com/pytest-dev/pytest/releases","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T17:40:26.725Z","confidence":0.7}},"robot-framework":{"attribute":"release.history","value":[{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.5rc1","date":"2026-09-04T08:28:54Z","type":"prerelease","version":"v7.5rc1"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.5b1","date":"2026-07-17T16:21:06Z","type":"prerelease","version":"v7.5b1"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.4.2","date":"2026-03-03T16:50:54Z","type":"stable","version":"v7.4.2"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.4.1","date":"2025-12-23T17:07:11Z","type":"stable","version":"v7.4.1"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.4","date":"2025-12-12T11:10:11Z","type":"stable","version":"v7.4"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.4rc2","date":"2025-12-09T20:32:44Z","type":"prerelease","version":"v7.4rc2"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.4rc1","date":"2025-12-09T20:31:49Z","type":"prerelease","version":"v7.4rc1"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.4b2","date":"2025-11-08T22:32:41Z","type":"prerelease","version":"v7.4b2"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.4b1","date":"2025-10-07T13:23:23Z","type":"prerelease","version":"v7.4b1"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.3.2","date":"2025-07-04T14:43:52Z","type":"stable","version":"v7.3.2"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.3.1","date":"2025-06-16T15:02:51Z","type":"stable","version":"v7.3.1"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.3","date":"2025-05-30T14:53:24Z","type":"stable","version":"v7.3"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.3rc3","date":"2025-05-21T11:57:49Z","type":"prerelease","version":"v7.3rc3"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.3rc2","date":"2025-05-19T21:06:06Z","type":"prerelease","version":"v7.3rc2"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.3rc1","date":"2025-05-08T22:33:04Z","type":"prerelease","version":"v7.3rc1"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.2.2","date":"2025-02-07T21:03:43Z","type":"stable","version":"v7.2.2"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.2.1","date":"2025-02-07T21:01:48Z","type":"stable","version":"v7.2.1"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.2","date":"2025-01-14T14:54:23Z","type":"stable","version":"v7.2"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.2rc1","date":"2024-12-31T09:49:10Z","type":"prerelease","version":"v7.2rc1"},{"url":"https://github.com/robotframework/robotframework/releases/tag/v7.2b1","date":"2024-12-18T22:38:41Z","type":"prerelease","version":"v7.2b1"}],"provenance":{"source":"https://github.com/robotframework/robotframework/releases","sourceType":"vioscale-crawler","retrievedAt":"2026-09-08T22:03:14.903Z","confidence":0.7}}}},{"attribute":"security.scorecard","values":{"pytest":{"attribute":"security.scorecard","value":6.7,"provenance":{"source":"https://api.securityscorecards.dev/projects/github.com/pytest-dev/pytest","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T17:40:26.745Z","confidence":0.9}},"robot-framework":{"attribute":"security.scorecard","value":4.2,"provenance":{"source":"https://api.securityscorecards.dev/projects/github.com/robotframework/robotframework","sourceType":"vioscale-crawler","retrievedAt":"2026-09-08T22:03:14.974Z","confidence":0.9}}}},{"attribute":"security.vulnerabilities","values":{"pytest":{"attribute":"security.vulnerabilities","value":{"count":1,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=pypi&package_name=pytest&per_page=100","last_12m":1,"max_severity":"MODERATE"},"provenance":{"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=pypi&package_name=pytest&per_page=100","sourceType":"vioscale-crawler","retrievedAt":"2026-09-10T17:40:26.758Z","confidence":0.9}},"robot-framework":{"attribute":"security.vulnerabilities","value":{"count":0,"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=pypi&package_name=robotframework&per_page=100","last_12m":0,"max_severity":null},"provenance":{"source":"https://advisories.ecosyste.ms/api/v1/advisories?ecosystem=pypi&package_name=robotframework&per_page=100","sourceType":"vioscale-crawler","retrievedAt":"2026-09-08T22:03:14.993Z","confidence":0.9}}}}],"capabilities":{"category":{"slug":"testing-tools","name":"Testing Tools"},"groups":[{"group":"Core","rows":[{"axis":{"key":"test_types","label":"Test types","type":"enum","enumValues":[{"value":"unit","label":"Unit"},{"value":"integration","label":"Unit + integration"},{"value":"e2e","label":"Unit + integration + E2E"}],"group":"Core"},"values":{"pytest":null,"robot-framework":null}},{"axis":{"key":"browser_automation","label":"Browser automation","type":"bool","group":"Core"},"values":{"pytest":null,"robot-framework":null}},{"axis":{"key":"assertions","label":"Built-in assertion library","type":"bool","group":"Core"},"values":{"pytest":true,"robot-framework":null}},{"axis":{"key":"languages","label":"Languages","type":"text","group":"Core","description":"Languages / runtimes supported."},"values":{"pytest":"Python","robot-framework":"Python, Java, and other languages (for library extensions)"}}]},{"group":"Isolation","rows":[{"axis":{"key":"mocking","label":"Mocking / stubbing","type":"bool","group":"Isolation"},"values":{"pytest":null,"robot-framework":null}}]},{"group":"Techniques","rows":[{"axis":{"key":"snapshot_testing","label":"Snapshot testing","type":"bool","group":"Techniques"},"values":{"pytest":null,"robot-framework":null}}]},{"group":"Performance","rows":[{"axis":{"key":"parallel_execution","label":"Parallel execution","type":"bool","group":"Performance"},"values":{"pytest":null,"robot-framework":null}}]},{"group":"Insight","rows":[{"axis":{"key":"coverage","label":"Code coverage","type":"bool","group":"Insight"},"values":{"pytest":null,"robot-framework":null}}]},{"group":"DX","rows":[{"axis":{"key":"watch_mode","label":"Watch mode","type":"bool","group":"DX"},"values":{"pytest":null,"robot-framework":null}}]},{"group":"Ops","rows":[{"axis":{"key":"ci_integration","label":"CI integration","type":"bool","group":"Ops"},"values":{"pytest":null,"robot-framework":true}}]}]},"leader":"pytest","leaderReason":"pytest leads by composite 73.7 vs Robot Framework's 54.9 (margin 18.8), at medium confidence (0.72).","generatedAt":"2026-09-11T23:36:39.170Z"},"meta":{"source":"https://www.vioscale.ai","license":"CC-BY-4.0","generatedAt":"2026-09-11T23:36:39.170Z","disclaimer":"Independent, evidence-based. Every fact carries provenance."}}