{"id":13713462,"url":"https://github.com/bazelbuild/rules_webtesting","last_synced_at":"2025-04-04T11:08:57.824Z","repository":{"id":11811315,"uuid":"67822546","full_name":"bazelbuild/rules_webtesting","owner":"bazelbuild","description":"Bazel rules to allow testing against a browser with WebDriver.","archived":false,"fork":false,"pushed_at":"2025-02-12T23:13:24.000Z","size":1219,"stargazers_count":96,"open_issues_count":40,"forks_count":58,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-03-28T10:04:18.836Z","etag":null,"topics":["bazel-rules","go","java","python","selenium","webdriver"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bazelbuild.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-09-09T18:25:37.000Z","updated_at":"2025-02-12T23:13:28.000Z","dependencies_parsed_at":"2023-07-14T03:06:54.201Z","dependency_job_id":"a53c59fa-bd37-4d9f-8a19-f5127e43ed81","html_url":"https://github.com/bazelbuild/rules_webtesting","commit_stats":{"total_commits":415,"total_committers":41,"mean_commits":"10.121951219512194","dds":0.3204819277108434,"last_synced_commit":"77428ec7e39f26e31b438372ab2bc2f90f42fa5d"},"previous_names":["bazelbuild/rules_web"],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bazelbuild%2Frules_webtesting","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bazelbuild%2Frules_webtesting/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bazelbuild%2Frules_webtesting/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bazelbuild%2Frules_webtesting/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bazelbuild","download_url":"https://codeload.github.com/bazelbuild/rules_webtesting/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247166157,"owners_count":20894652,"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":["bazel-rules","go","java","python","selenium","webdriver"],"created_at":"2024-08-02T23:01:36.956Z","updated_at":"2025-04-04T11:08:57.806Z","avatar_url":"https://github.com/bazelbuild.png","language":"Go","readme":"# Bazel Web Testing Rules\n\n[![Build status](https://badge.buildkite.com/d9c3974f925876394ca9d3e00670c0950b6f7ebf325412def7.svg?branch=master)](https://buildkite.com/bazel/rules-webtesting-saucelabs)\n\nBazel rules and supporting code to allow testing against a browser with\nWebDriver.\n\n## Configure your Bazel project\n\nFor all languages, you need to add the following to your MODULE.bazel file:\n\n```bzl\nbazel_dep(name = \"rules_webtesting\", version = \"0.4.0\")\n```\n\n## Write your tests\n\nWrite your test in the language of your choice, but use our provided Browser API\nto get an instance of WebDriver.\n\n### Example Java Test\n\n```java\nimport com.google.testing.web.WebTest;\nimport org.junit.Test;\nimport org.junit.runner.RunWith;\nimport org.junit.runners.JUnit4;\nimport org.openqa.selenium.WebDriver;\n\n@RunWith(JUnit4.class)\npublic class BrowserTest {\n  private WebDriver driver;\n\n  @Before public void createDriver() {\n    driver = new WebTest().newWebDriverSession();\n  }\n\n  @After public void quitDriver() {\n    try {\n      driver.quit();\n     } finally {\n      driver = null;\n     }\n   }\n\n  // your tests here\n}\n```\n\n### Example Python Test\n\n```python\nimport unittest\nfrom testing.web import webtest\n\n\nclass BrowserTest(unittest.TestCase):\n  def setUp(self):\n    self.driver = webtest.new_webdriver_session()\n\n  def tearDown(self):\n    try:\n      self.driver.quit()\n    finally:\n      self.driver = None\n\n  # Your tests here\n\nif __name__ == \"__main__\":\n  unittest.main()\n```\n\n### Example Go Test\n\n```go\nimport (\n    \"testing\"\n\n    \"github.com/tebeka/selenium\"\n    \"github.com/bazelbuild/rules_webtesting/go/webtest\"\n)\n\nfunc TestWebApp(t *testing.T) {\n    wd, err := webtest.NewWebDriverSession(selenium.Capabilities{})\n    if err != nil {\n        t.Fatal(err)\n    }\n\n    // your test here\n\n    if err := wd.Quit(); err != nil {\n        t.Logf(\"Error quitting webdriver: %v\", err)\n    }\n}\n```\n\n### BUILD file\n\nIn your BUILD files, load the correct language specific build rule and create a\ntest target using it:\n\n```bzl\nload(\"@rules_webtesting//web:py.bzl\", \"py_web_test_suite\")\n\npy_web_test_suite(\n    name = \"browser_test\",\n    srcs = [\"browser_test.py\"],\n    browsers = [\n        \"@rules_webtesting//browsers:chromium-local\",\n    ],\n    local = True,\n    deps = [\"@rules_webtesting//testing/web\"],\n)\n```\n","funding_links":[],"categories":["Additional language support","Repositories","Go"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbazelbuild%2Frules_webtesting","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbazelbuild%2Frules_webtesting","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbazelbuild%2Frules_webtesting/lists"}