Выбор правильных зависимостей для Selenium в Gradle

#java #git #selenium #gradle

#java #git #selenium #gradle

Вопрос:

Я очень новичок в программировании, и я создал несколько коротких тестовых примеров в Selenium, и мне нужно передать их в репозиторий, чтобы кто-то другой извлек и протестировал. Я ищу способ запустить этот проект и его банки, чтобы у человека, который его открывает, уже были импортированы банки, и мой код не будет выдавать кучу ошибок.

введите описание изображения здесь

Это банки, которые я должен импортировать вручную, чтобы выполнить мои тесты.

Я также попытался создать проект gradle (решит ли это мою проблему?). Это «группа компиляции: ‘org.seleniumhq.selenium’, имя: ‘selenium-java’, версия: ‘3.141.59’» все, что мне нужно упомянуть?

Здесь я перечислил свои зависимости от файла build.gradle

 plugins {
    id 'java'
}

group 'org.Programming'

version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {

    testCompile group: 'junit', name: 'junit', version: '4.12'
    compile group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '3.141.59'
    compile group: 'io.cucumber', name: 'cucumber-java', version: '5.6.0'
    testCompile group: 'io.cucumber', name: 'cucumber-junit', version: '5.6.0'
    testCompile group: 'org.hamcrest', name: 'hamcrest', version: '2.2'
}
  

Но тогда проблема в том, что я по какой-то причине не могу запустить свои тесты.
введите описание изображения здесь

Мне действительно интересно узнать больше о том, как лучше организовать зависимости моего проекта для git. Пожалуйста, помогите!

Ответ №1:

Вы не использовали расположение Java JRE, поскольку я вижу, что пакет Java не отображается во внешней библиотеке. Для других jar, которые вы импортируете вручную, создайте Aritifactory в https://jfrog.com/artifactory/start-free /.

Используйте приведенный ниже код в build.gradle

 buildscript {
    repositories {
        maven {
            url 'YourArtifactoryURL'
            credentials {
                username = "YourUserName"
                password = 'YourPassword'
            }
        }

    }
    dependencies {
        //Check for the latest version here: http://plugins.gradle.org/plugin/com.jfrog.artifactory
        classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4 "
    }
}

allprojects {
    apply plugin: "com.jfrog.artifactory"
}

group = 'FolderStrucinArtifactoryeg. com.test.in'
def ver = System.getProperty("jar.version")
version = "$ver"

apply plugin: 'java-library'
apply plugin: 'maven'
apply plugin: 'maven-publish'
apply plugin: 'java'
apply plugin: 'com.jfrog.artifactory'



def artifactory_password = 'YourArtifactoryPassword'
def artifactory_user = "yourArtifactoryusername"
def artifactory_contextUrl = "YourArtifactoryURL"

configurations.all {
    // Check for snapshot updates every build
    resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}
jar {from sourceSets.test.output}

task testJar(type: Jar) {
//    classifier = 'tests'
    from sourceSets.test.output

    from('src/test/java') {
        include '/**/*.json'
    }
}

task javadocJar(type: Jar, dependsOn: javadoc) {
    classifier = 'javadoc'
    from tasks.javadoc.destinationDir
}

task sourcesJar(type: Jar) {
    from sourceSets.test.allSource
    classifier = 'sources'
}


artifacts {
    archives testJar
    archives javadocJar
    //archives sourcesJar
}


repositories {

    repositories {
        maven {
            url "ArtifactoryUrLwith1stRepokey"
        }
        maven {
            url "ArtifactoryUrLwith2ndRepokey"
        }

    }
}



dependencies {
    #enter your dependencies here
}





    artifactory {
        contextUrl = "${artifactory_contextUrl}"
        //The base Artifactory URL if not overridden by the publisher/resolver
        publish {
            repository {
                repoKey = 'YourRepokeyinArtifactory'
                username = "${artifactory_user}"
                password = "${artifactory_password}"
                mavenCompatible = true

            }
            defaults {
                publications('mavenJava')
                publishBuildInfo = true
                publishArtifacts = true
                publishPom = true
            }


        }
        resolve {
            repository {
                repoKey = 'yourrepositoryfolderinartifactory'
                username = "${artifactory_user}"
                password = "${artifactory_password}"
                maven = true

            }
        }
    }
    publishing {
        publications {
            mavenJava(MavenPublication) {
                groupId = "$group"
                artifactId = "$rootProject.name"
                version = "${ver}"
                from components.java
                artifact jar
                artifact javadocJar
                artifact sourcesJar
            }
        }
    }
  

Введите приведенную ниже команду, чтобы опубликовать вашу сборку в artifactory
gradlew clean build -Djar.version=1.0.0

gradlew artifactoryPublish -Djar.version =1.0.0

он опубликует ваши банки в artifactory, и другому человеку просто нужно выполнить обновление gradle, чтобы получить банки.

Вы можете создать конвейер для развертывания jar всякий раз, когда вы нажимаете на github.

Затем в вашем коде, как обычно, вы можете использовать оператор import для использования jars, и ваш тест должен работать нормально.