From 85fbb9390b67f3ab290f5067574fb8072f98b683 Mon Sep 17 00:00:00 2001 From: Hrithik Katiyar Date: Mon, 26 Aug 2024 11:59:30 +0530 Subject: [PATCH 1/9] SDKAD-153 Added gradle config for selenide --- README.md | 46 ++++++++++++++++++++++++++++++++++++++++++++-- build.gradle | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+), 2 deletions(-) create mode 100644 build.gradle diff --git a/README.md b/README.md index af21621..d5682d4 100644 --- a/README.md +++ b/README.md @@ -6,13 +6,15 @@ -## Setup +## Using Maven + +### Setup * Clone the repo * Install dependencies `mvn compile` * Update `browserstack.yml` files at the root directory with your [BrowserStack Username and Access Key](https://www.browserstack.com/accounts/settings) -## Running your tests +### Running your tests - To run a parallel tests, run `mvn test -P sample-test` - To run local tests, run `mvn test -P sample-local-test` @@ -20,6 +22,46 @@ Understand how many parallel sessions you need by using our [Parallel Test Calculator](https://www.browserstack.com/automate/parallel-calculator?ref=github) +## Using Gradle + +### Prerequisites +- If using Gradle, Java v9+ is required. + +### Setup + +- Clone the repository +- Install dependencies `gradle build` +- Update `browserstack.yml` files at the root directory with your [BrowserStack Username and Access Key](https://www.browserstack.com/accounts/settings) + +### Run sample build + +- To run the test suite having cross-platform with parallelization, run `gradle sampleTest` +- To run local tests, run `gradle sampleLocalTest` + +Understand how many parallel sessions you need by using our [Parallel Test Calculator](https://www.browserstack.com/automate/parallel-calculator?ref=github) + +### Integrate your test suite + +This repository uses the BrowserStack SDK to run tests on BrowserStack. Follow the steps below to install the SDK in your test suite and run tests on BrowserStack: + +* Following are the changes required in `gradle.build` - + * Add `compileOnly 'com.browserstack:browserstack-java-sdk:latest.release'` in dependencies + * Fetch Artifact Information and add `jvmArgs` property in tasks *SampleTest* and *SampleLocalTest* : + ``` + def browserstackSDKArtifact = configurations.compileClasspath.resolvedConfiguration.resolvedArtifacts.find { it.name == 'browserstack-java-sdk' } + + task sampleTest(type: Test) { + useTestNG() { + dependsOn cleanTest + useDefaultListeners = true + suites "config/sample.testng.xml" + jvmArgs "-javaagent:${browserstackSDKArtifact.file}" + } + } + ``` + +* Install dependencies `gradle build` + ## Notes * You can view your test results on the [BrowserStack Automate dashboard](https://www.browserstack.com/automate) * To test on a different set of browsers, check out our [platform configurator](https://www.browserstack.com/automate/java#setting-os-and-browser) diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..97d578b --- /dev/null +++ b/build.gradle @@ -0,0 +1,46 @@ +plugins { + id 'java' +} + +repositories { mavenCentral() } + +dependencies { + implementation 'org.testng:testng:7.4.0' + implementation 'org.seleniumhq.selenium:selenium-java:4.1.0' + implementation 'com.codeborne:selenide:6.17.0' + implementation 'org.yaml:snakeyaml:2.2' + compileOnly 'com.browserstack:browserstack-java-sdk:latest.release' +} + +group = 'com.browserstack' +version = '1.0-SNAPSHOT' +description = 'selenide-browserstack' +sourceCompatibility = '1.8' + +def browserstackSDKArtifact = configurations.compileClasspath.resolvedConfiguration.resolvedArtifacts.find { it.name == 'browserstack-java-sdk' } + +tasks.withType(JavaCompile) { + options.encoding = 'UTF-8' +} + +tasks.withType(Test) { + systemProperties = System.properties +} + +task sampleTest(type: Test) { + useTestNG() { + dependsOn cleanTest + useDefaultListeners = true + suites "config/sample.testng.xml" + jvmArgs "-javaagent:${browserstackSDKArtifact.file}" + } +} + +task sampleLocalTest(type: Test) { + useTestNG() { + dependsOn cleanTest + useDefaultListeners = true + suites "config/local.testng.xml" + jvmArgs "-javaagent:${browserstackSDKArtifact.file}" + } +} From 70b681a6bf7a3c37beb47c9c796ab68ca4c42ac9 Mon Sep 17 00:00:00 2001 From: Hrithik Katiyar Date: Tue, 27 Aug 2024 15:37:18 +0530 Subject: [PATCH 2/9] SDKAD-153 Added browserstack sdk dependency as implementation instead of compileOnly --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 97d578b..3efa0d2 100644 --- a/build.gradle +++ b/build.gradle @@ -9,7 +9,7 @@ dependencies { implementation 'org.seleniumhq.selenium:selenium-java:4.1.0' implementation 'com.codeborne:selenide:6.17.0' implementation 'org.yaml:snakeyaml:2.2' - compileOnly 'com.browserstack:browserstack-java-sdk:latest.release' + implementation 'com.browserstack:browserstack-java-sdk:latest.release' } group = 'com.browserstack' From 99f4fa2722e6e128d8e7d7797482e51b8880f95d Mon Sep 17 00:00:00 2001 From: Hrithik Katiyar Date: Tue, 27 Aug 2024 15:57:51 +0530 Subject: [PATCH 3/9] SDKAD-153 Updated readme for gradle config --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d5682d4..b88ab8b 100644 --- a/README.md +++ b/README.md @@ -44,8 +44,8 @@ Understand how many parallel sessions you need by using our [Parallel Test Calcu This repository uses the BrowserStack SDK to run tests on BrowserStack. Follow the steps below to install the SDK in your test suite and run tests on BrowserStack: -* Following are the changes required in `gradle.build` - - * Add `compileOnly 'com.browserstack:browserstack-java-sdk:latest.release'` in dependencies +* Following are the changes required in `build.gradle` - + * Add `implementation 'com.browserstack:browserstack-java-sdk:latest.release'` in dependencies * Fetch Artifact Information and add `jvmArgs` property in tasks *SampleTest* and *SampleLocalTest* : ``` def browserstackSDKArtifact = configurations.compileClasspath.resolvedConfiguration.resolvedArtifacts.find { it.name == 'browserstack-java-sdk' } From 657ed654da91d5e8f96b79990303f6317eff22b1 Mon Sep 17 00:00:00 2001 From: Hrithik Katiyar Date: Fri, 30 Aug 2024 18:08:18 +0530 Subject: [PATCH 4/9] SDKAD-153 Added gradle test run to github workflow --- .github/workflows/maven-workflow-run.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/maven-workflow-run.yml b/.github/workflows/maven-workflow-run.yml index d222ea6..65e81af 100644 --- a/.github/workflows/maven-workflow-run.yml +++ b/.github/workflows/maven-workflow-run.yml @@ -64,6 +64,12 @@ jobs: run: | mvn compile mvn test -P sample-test + - name: Run gradle task sampleTest + run: | + gradle clean sampleTest + - name: Run gradle task sampleLocalTest + run: | + gradle clean sampleLocalTest - if: always() uses: actions/github-script@98814c53be79b1d30f795b907e553d8679345975 id: status-check-completed From a368f3c0dac92070565338ea5fe7ce20338704a9 Mon Sep 17 00:00:00 2001 From: Aaryan Date: Wed, 22 Jan 2025 13:52:53 +0530 Subject: [PATCH 5/9] exclude java 8 for mac os latest --- .github/workflows/maven-workflow-run.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/maven-workflow-run.yml b/.github/workflows/maven-workflow-run.yml index 65e81af..9dad777 100644 --- a/.github/workflows/maven-workflow-run.yml +++ b/.github/workflows/maven-workflow-run.yml @@ -19,6 +19,9 @@ jobs: matrix: java: [ '8', '11', '17' ] os: [ 'macos-latest', 'windows-latest', 'ubuntu-latest' ] + exclude: + - java: '8' + os: 'macos-latest' name: Selenide Repo ${{ matrix.Java }} - ${{ matrix.os }} Sample env: BROWSERSTACK_USERNAME: ${{ secrets.BROWSERSTACK_USERNAME }} From 3044d3574645170f3d4e9c342ac2bd441a67ccd7 Mon Sep 17 00:00:00 2001 From: Aaryan Date: Wed, 22 Jan 2025 13:53:26 +0530 Subject: [PATCH 6/9] add gradle in gitignore --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 5c4c481..3f71237 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,9 @@ hs_err_pid* *.iws /target/ build +.gradle +gradle +gradlew* .DS_Store local.log From bd477a815fe99aedbd375fad16943aba07174e3d Mon Sep 17 00:00:00 2001 From: Aaryan Date: Thu, 23 Jan 2025 12:09:33 +0530 Subject: [PATCH 7/9] move jvmArgs to function --- build.gradle | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 3efa0d2..0f665c9 100644 --- a/build.gradle +++ b/build.gradle @@ -25,6 +25,7 @@ tasks.withType(JavaCompile) { tasks.withType(Test) { systemProperties = System.properties + jvmArgs += "-javaagent:${browserstackSDKArtifact.file}" } task sampleTest(type: Test) { @@ -32,7 +33,6 @@ task sampleTest(type: Test) { dependsOn cleanTest useDefaultListeners = true suites "config/sample.testng.xml" - jvmArgs "-javaagent:${browserstackSDKArtifact.file}" } } @@ -41,6 +41,5 @@ task sampleLocalTest(type: Test) { dependsOn cleanTest useDefaultListeners = true suites "config/local.testng.xml" - jvmArgs "-javaagent:${browserstackSDKArtifact.file}" } } From 94543db6fd41d463d7af920cb462bc8ecdb9ecef Mon Sep 17 00:00:00 2001 From: Aaryan Date: Fri, 24 Jan 2025 18:50:58 +0530 Subject: [PATCH 8/9] Empty-Commit From cf2fef21a98107683c8ef16992efe19b58b21267 Mon Sep 17 00:00:00 2001 From: Aaryan Date: Fri, 24 Jan 2025 19:02:32 +0530 Subject: [PATCH 9/9] Empty-Commit