2016-01-19 3 views
2

У меня есть тесты Selenium, написанные в java (Eclipse). Я подключаюсь к SQL Server и проверяю некоторые результаты в базе данных, используя JDBC SQLServerDriver; Тесты отлично работают в Eclipse: (Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver).newInstance();).Запуск Maven @ Тесты через командную строку

В то время как мне нужно выполнить их с помощью командной строки я запускаю следующую строку:
mvn clean install -Dtest=Test1 test

Тест запускается на выполнение только до тех пор, пока для подключения SQL Server для проверки данных. Я получаю сообщение об ошибке, что говорит:

java.sql.SQLException: Нет подходящий драйвер найден для JDBC: SQLServer: // DBALIASSTAGING: 1433 в java.sql.DriverManager.getConnection (DriverManager.java:689)

Я указываю на JDK 1.8 в Eclipse и в своем JAVA_HOME. У меня есть мой sqljdbc4.jar, указанный в Eclipse, и в CLASSPATH (C:\Microsoft JDBC Driver 4.0\sqljdbc_4.0\enu\sqljdbc4.jar).

Что-нибудь еще мне не хватает? Странно, что Test1 работает очень хорошо - подключается и ищет базу данных только в Eclipse. Но не удается подключиться к SQL Server через командную строку, когда я запускаю mvn clean install -Dtest=Test1 test. Запуск хорошо, но задыхается, когда нужно подключиться к SQL Server (11).

Я прочитал все сообщения на sqljdbc4.jar и настроил переменную CLASSPATH правильно и не смог найти что-то не так в моей конфигурации.

Пожалуйста, дайте мне подсказку или подсказку, я полностью потерял, что я делаю неправильно?

+0

почему вы запустить MVN чистой установку теста?фаза тестирования уже выполнена как часть фазы установки в каскаде –

+0

Кроме того, соответствующая недостающая библиотека sqljdbc4 добавлена ​​в Eclipse, но не как зависимость от Maven, правильно? Вы можете установить его как зависимость от maven, как описано в этом [SO thread] (http://stackoverflow.com/questions/19537396/missing-artifact-com-microsoft-sqlserversqljdbc4jar4-0) –

ответ

1

Это довольно сложно, насколько я знаю, Microsoft не выпустила эту банку в любые хранилища maven.

Прежде всего, тот факт, что у вас есть jar в classpath для eclipse, ничего не значит для Maven (он независим). Maven потребует от вас зависимости от pom.xml проекта, чтобы использовать банку. (работает аналогично пути класса eclipse).

Как это:

<dependency> 
    <groupId>com.microsoft.sqlserver</groupId> 
    <artifactId>sqljdbc4</artifactId> 
    <version>4.0</version> 
    <scope>test</scope> 
</dependency> 

Обратите внимание на тест сфера означает, что банки будут доступны только для мавена при тестировании.

Теперь зависимость обычно загружается из центрального хранилища maven. Поскольку его нет, вам придется загрузить его с microsoft и установить его самостоятельно, используя:

mvn install: install-file -Dfile = sqljdbc4.jar -DgroupId = com.microsoft.sqlserver -DartifactId = sqljdbc4 -Dversion = 4,0 -Dpackaging = баночка

Missing artifact com.microsoft.sqlserver:sqljdbc4:jar:4.0

Пожалуйста, проверьте другой ответ относительно JTDS. Эта библиотека (она открыто доступна на maven) - это та, которую я успешно использовал в многопрограммном программном обеспечении.

Более подробная информация о зависимости Maven: https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html

+0

Большое спасибо А. Ди Маттео, я добавил sqljdbc4.jar зависимости от Maven и он исправил проблему. Я успешно выполняю свои тесты с помощью команды «mvn surefire: test -Dtest = Test1»; спасибо всем за помощь! – Lulu

+0

Я не Ди Маттео, но я рад, что он отлично работал :) – mkbrv

Смежные вопросы