#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, и ваш тест должен работать нормально.