通过命令行

时间:2016-01-19 21:51:56

标签: java maven selenium

我用Java(Eclipse)编写了Selenium测试。我使用JDBC SQLServerDriver连接到SQL Server并验证数据库中的一些结果;测试在Eclipse中完美运行:(Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver).newInstance();)。

虽然我需要通过命令行执行它们,但我运行以下行:
mvn clean install -Dtest=Test1 test

只有在必须连接SQL Server以验证数据之前,才会执行测试。我收到错误消息:

  

java.sql.SQLException:没有为jdbc找到合适的驱动程序:sqlserver:// DBALIASSTAGING:1433   在java.sql.DriverManager.getConnection(DriverManager.java:689)

我指向Eclipse和我的JAVA_HOME中的JDK 1.8。我在Eclipse和sqljdbc4.jarCLASSPATH)中指出了C:\Microsoft JDBC Driver 4.0\sqljdbc_4.0\enu\sqljdbc4.jar

我还缺少什么?奇怪的是,Test1运行得非常好 - 仅在Eclipse中搜索数据库。但是当我运行mvn clean install -Dtest=Test1 test时,无法通过命令行连接SQL Server。运行良好,但需要连接到SQL Server(11)时会发生阻塞。

我已阅读sqljdbc4.jar上的所有帖子并正确设置CLASSPATH变量,但我的配置中找不到任何错误。

请给我一个线索或暗示,我完全迷失了,我做错了什么?

1 个答案:

答案 0 :(得分:1)

据我所知,微软尚未将该jar发布到任何maven存储库中,这非常棘手。

首先,你在eclipse类路径中拥有jar的事实对Maven来说没什么意义(它是独立的)。 Maven将要求您在项目的pom.xml中具有依赖项以便使用jar。 (与eclipse类路径类似)。

像这样:

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

请注意,范围测试意味着jar仅在测试时可用于maven。

现在,通常从maven中央存储库下载依赖项。由于它不存在,您必须从microsoft下载并使用以下方法自行安装:

mvn install:install-file -Dfile = sqljdbc4.jar -DgroupId = com.microsoft.sqlserver -DartifactId = sqljdbc4 -Dversion = 4.0 -Dpackaging = jar

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

还请查看有关JTDS的其他答案。这个库(它在maven上公开可用)是我在多个生产运行软件中成功使用的库。

有关maven依赖关系的更多信息:https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html