我有一個連接到數據庫的selenium webdriver測試,執行查詢並將值存儲在一個字符串中。然後我會做這些事情。使用ant腳本執行Selenium數據庫測試失敗
當我在Twist中執行測試(基於Eclipse)時,此測試正常工作。
但是,當我使用Ant腳本執行測試,它無法說明空指針異常,也看到這個.. [twist.runner]拋出java.lang.ClassNotFoundException:com.microsoft.sqlserver.jdbc.SQ LServerDriver 。
代碼段:
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;
}
錯誤由返回螞蟻:在test.products.NewUserSubscribes.verifyUserCreatedInTslUserProfileAndSubscriptionTables
顯示java.lang.NullPointerException (NewUserSubscribes.java:68) 在java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask.run(FutureTask.java: 262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
哪一行是行68 – 2014-10-08 15:10:57
是完整的堆棧跟蹤? – 2014-10-08 15:11:54
對不起,第68行是:\t \t String userDetails = Products.verifyUserDetailsInSubscriptionTable(); – user3554072 2014-10-08 15:22:21