Java 使用ant脚本执行Selenium数据库测试时失败
我有一个SeleniumWebDriver测试,它连接到数据库,执行查询并将值存储在字符串中。然后我就用它做一些事情 当我在Twist(基于Eclipse)中执行测试时,这个测试工作得很好 但当我使用ant脚本执行测试时,它无法声明null指针异常,也看到了这一点。。[twist.runner]java.lang.ClassNotFoundException:com.microsoft.sqlserver.jdbc.SQ l服务器驱动程序 代码片段:Java 使用ant脚本执行Selenium数据库测试时失败,java,sql,selenium,ant,webdriver,Java,Sql,Selenium,Ant,Webdriver,我有一个SeleniumWebDriver测试,它连接到数据库,执行查询并将值存储在字符串中。然后我就用它做一些事情 当我在Twist(基于Eclipse)中执行测试时,这个测试工作得很好 但当我使用ant脚本执行测试时,它无法声明null指针异常,也看到了这一点。。[twist.runner]java.lang.ClassNotFoundException:com.microsoft.sqlserver.jdbc.SQ l服务器驱动程序 代码片段: public void verifyUser
public void verifyUserCreatedInTslUserProfileAndSubscriptionTables() throws Exception {
String userDetails = Products.verifyUserDetailsInSubscriptionTable();
verifyTrue("User details in subscription table did not match, please check manually", userDetails.contentEquals("1215401"));
}
public static String verifyUserDetailsInSubscriptionTable() throws IOException, SQLException {
String userSubscriptionDetails = null;
DBAccess.getConnection(ConnectionStrings.databaseConnect("authentication"), ConnectionStrings.getLoginDetailsDB("username"), ConnectionStrings.getLoginDetailsDB("password"));
Statement stmt = DBAccess.con.createStatement();
ResultSet result = stmt.executeQuery(ConnectionStrings.getSqlQuery("verifySubscription"));
while (result.next()) { userSubscriptionDetails = result.getString("ServiceID")+result.getString("Status")+result.getString("AutoRenew"); }
DBAccess.closeConnection();
return userSubscriptionDetails;
}
public class DBAccess {
public static java.sql.Connection con = null;
public static java.sql.Connection getConnection(String conurl, String userName, String password) {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
con = java.sql.DriverManager.getConnection(conurl,userName,password);
if (con != null) System.out.println("Connection Successful!");
}
catch(Exception e){
e.printStackTrace();
System.out.println("Error Trace in getConnection() : " + e.getMessage());
}
return con;
}
public static String databaseConnect(String connection) throws IOException {
String conurl = null;
String url = "jdbc:sqlserver://";
switch (connection) {
case "authentication":
if (Configuration.getSqlServerName().contains("stage")) { conurl = url + "tslauthentication.database.ST.tslweb.local"; break; }
else if (!Configuration.getSqlServerName().contains("stage")) { conurl = url + Configuration.getSqlServerName(); break; }
else break;
case "tes_connect":
conurl = url
+Configuration.getSqlServerName() + ".tslwebdev.local"+":"
+1433+";databaseName="
+"tes_connect"+";selectMethod="
+"cursor"+";"; break;
}
connection = conurl;
return connection;
}
Ant返回的错误:
public void verifyUserCreatedInTslUserProfileAndSubscriptionTables() throws Exception {
String userDetails = Products.verifyUserDetailsInSubscriptionTable();
verifyTrue("User details in subscription table did not match, please check manually", userDetails.contentEquals("1215401"));
}
public static String verifyUserDetailsInSubscriptionTable() throws IOException, SQLException {
String userSubscriptionDetails = null;
DBAccess.getConnection(ConnectionStrings.databaseConnect("authentication"), ConnectionStrings.getLoginDetailsDB("username"), ConnectionStrings.getLoginDetailsDB("password"));
Statement stmt = DBAccess.con.createStatement();
ResultSet result = stmt.executeQuery(ConnectionStrings.getSqlQuery("verifySubscription"));
while (result.next()) { userSubscriptionDetails = result.getString("ServiceID")+result.getString("Status")+result.getString("AutoRenew"); }
DBAccess.closeConnection();
return userSubscriptionDetails;
}
public class DBAccess {
public static java.sql.Connection con = null;
public static java.sql.Connection getConnection(String conurl, String userName, String password) {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
con = java.sql.DriverManager.getConnection(conurl,userName,password);
if (con != null) System.out.println("Connection Successful!");
}
catch(Exception e){
e.printStackTrace();
System.out.println("Error Trace in getConnection() : " + e.getMessage());
}
return con;
}
public static String databaseConnect(String connection) throws IOException {
String conurl = null;
String url = "jdbc:sqlserver://";
switch (connection) {
case "authentication":
if (Configuration.getSqlServerName().contains("stage")) { conurl = url + "tslauthentication.database.ST.tslweb.local"; break; }
else if (!Configuration.getSqlServerName().contains("stage")) { conurl = url + Configuration.getSqlServerName(); break; }
else break;
case "tes_connect":
conurl = url
+Configuration.getSqlServerName() + ".tslwebdev.local"+":"
+1433+";databaseName="
+"tes_connect"+";selectMethod="
+"cursor"+";"; break;
}
connection = conurl;
return connection;
}
java.lang.NullPointerException
在test.products.NewUserSubscribes.verifyUserCreatedInTslUserProfileAndSubscriptionTables中(NewUserSubscribes.java:68)
位于java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
在java.util.concurrent.FutureTask.run(FutureTask.java:262)处
在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)。通过将jdbc驱动程序添加到类路径来修复它 哪一行是第68行是完整堆栈跟踪?对不起,第68行是:String userDetails=Products.verifyUserDetailsInSubscriptionTable();从堆栈跟踪中获得更多信息。。。[twist.runner]java.lang.ClassNotFoundException:com.microsoft.sqlserver.jdbc.SQ LServerDriver错误说明一切:“ClassNotFoundException:com.microsoft.sqlserver.jdbc.SQ LServerDriver”您缺少依赖项。