2

我将 dbslim 用于(Selenium)Fitnesse:https ://github.com/markfink/dbslim

我想连接到 SQL Server 2014。

我的 jdbc 行应该如何格式化?

不像这样:

| script | Db Slim Setup |!-oracle.jdbc.driver.OracleDriver-!| jdbc:oracle:thin:@host_name:1521:database_name | username | password |

但还能怎么办?

ps 文件名为 DbSlimSetup.java

顺便说一下,DbSlimSetup 看起来像这样:

/*******************************************************************************
* The MIT License
* 
* Copyright (c) 2010, Mark S.
* 
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
* 
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
* 
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
******************************************************************************/
package slim;

import services.DbConnectionFactory;

public class DbSlimSetup {

    public static String DEFAULT_CONNECTION_POOL_NAME = "default";
    public static int DEFAULT_CONNECTION_POOL_MIN_IDLE = 1;
    public static int DEFAULT_CONNECTION_POOL_MAX_AXTIVE = 5;
    public static int DEFAULT_WAIT_TIMEOUT = 45000;


    public DbSlimSetup(
        String jdbcDriverClass,
        String connectURI, String username, String password) throws Exception {

    DbConnectionFactory.getDataSource(
            DEFAULT_CONNECTION_POOL_NAME,
            jdbcDriverClass,
            connectURI, username, password,
            DEFAULT_CONNECTION_POOL_MIN_IDLE, DEFAULT_CONNECTION_POOL_MAX_AXTIVE);
}

public DbSlimSetup(
        String jdbcDriverClass,
        String connectURI, String username, String password,
        int minIdle, int maxActive) throws Exception{

    DbConnectionFactory.getDataSource(
            DEFAULT_CONNECTION_POOL_NAME,
            jdbcDriverClass,
            connectURI, username, password,
            minIdle, maxActive);

}

public DbSlimSetup(
        String jdbcDriverClass,
        String connectionPoolName,
        String connectURI, String username, String password,
        int minIdle, int maxActive) throws Exception {

    DbConnectionFactory.getDataSource(
            connectionPoolName,
            jdbcDriverClass,
            connectURI, username, password,
            minIdle, maxActive);
}
}

那么如何用'Db Slim Setup'调用它有空格,我不明白那部分。有人可以解释吗?

请帮助我是新手。

4

3 回答 3

1

尝试这个

!path C:\Xebium\target\classes

|import|
|slim|

!define host_name {########}

| script | Db Slim Setup |!-oracle.jdbc.driver.OracleDriver-!| jdbc:oracle:thin:${host_name}:1521:database_name | username | password |

请注意,您不能在场景中使用它(如果那是您尝试使用'@'来做的事情),因为它正在调用夹具类的构造函数,并且应该是一个隔离表。

于 2015-12-10T09:01:45.683 回答
0

对不起,伙计们,这次你的帮助到目前为止没有奏效。

正确的答案应该是这样的:

a)首先,您必须正确构建。所以下载dbslim 将c3p0-0.9.12.jar 复制到目录c:\Xebium\src\main\java\slim

b)然后当它构建类文件时,您就可以更进一步了。

c) 现在使用路径!命令添加目标目录(你正确的那部分)所以:

!path C:\Xebium\target\classes\services

!path C:\Xebium\target\classes\slim

在此之后,无法调用的消息消失了!!!是的...

但现在我有另一个问题:(即:

例外:java.lang.NoClassDefFoundError: DbSlimSetup (错误名称: slim/DbSlimSetup) at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.8.0_51] at java.lang.ClassLoader.defineClass(ClassLoader.java: 760) [rt.jar:1.8.0_51] 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) [rt.jar:1.8.0_51] 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:467) [rt.jar:1.8.0_51] 在 java.net.URLClassLoader.access$100(URLClassLoader.java:73) [rt.jar:1.8.0_51] 在 java.net.URLClassLoader$1.run(URLClassLoader.java:368) [rt.jar:1.8.0_51] 在 java.net.URLClassLoader$1.run(URLClassLoader.java:362) [rt.jar:1.8.0_51] 在 java.security.AccessController.doPrivileged(Native Method) [rt.jar :1.8.0_51] 在 java.net.URLClassLoader.findClass(URLClassLoader.java:361) [rt.jar:1.8.0_51] 在 java.lang.ClassLoader。loadClass(ClassLoader.java:424) [rt.jar:1.8.0_51] 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) [rt.jar:1.8.0_51] 在 java.lang.ClassLoader。 loadClass(ClassLoader.java:357) [rt.jar:1.8.0_51] at java.lang.Class.forName0(Native Method) [rt.jar:1.8.0_51] at java.lang.Class.forName(Class.java :264) [rt.jar:1.8.0_51] 在 Fitnesse.slim.fixtureInteraction.DefaultInteraction.getClass(DefaultInteraction.java:57) [fitnesse-20150814.jar] 在 Fitnesse.slim.fixtureInteraction.DefaultInteraction.searchPathsForClass(DefaultInteraction.java :40) [fitnesse-20150814.jar] 在 Fitnesse.slim.fixtureInteraction.DefaultInteraction.createInstance(DefaultInteraction.java:20) [fitnesse-20150814.jar] 在 Fitnesse.slim.SlimExecutionContext.create(SlimExecutionContext.java:48) [ Fitnesse-20150814.jar] 在fitnesse.slim。StatementExecutor.create(StatementExecutor.java:80) [fitnesse-20150814.jar] 在 Fitnesse.slim.instructions.MakeInstruction.executeInternal(MakeInstruction.java:26) [fitnesse-20150814.jar] 在 Fitnesse.slim.instructions.Instruction。在 fitnesse.slim.ListExecutor$Executive.executeStatement(ListExecutor.java:49) [fitnesse-20150814.jar] 在 Fitnesse.slim.ListExecutor$Executive.executeStatement 执行(Instruction.java:29)[fitnesse-20150814.jar] ListExecutor.java:43) [fitnesse-20150814.jar] 在 Fitnesse.slim.ListExecutor.execute(ListExecutor.java:83) [fitnesse-20150814.jar] 在 Fitnesse.slim.SlimServer.executeInstructions(SlimServer.java:87) [fitnesse-20150814.jar] 在 Fitnesse.slim.SlimServer.processOneSetOfInstructions(SlimServer.java:80) [fitnesse-20150814.jar] 在 Fitnesse.slim.SlimServer.tryProcessInstructions(SlimServer.java:58) [fitnesse-20150814.jar] 在 Fitnesse.slim.SlimServer.serve(SlimServer.java:43) [fitnesse-20150814.jar] 在 Fitnesse.slim.SlimService.handle(SlimService.java:186) [fitnesse -20150814.jar] 在 Fitnesse.slim.SlimService.acceptOne(SlimService.java:194) [fitnesse-20150814.jar] 在 Fitnesse.slim.SlimService.accept(SlimService.java:156) [fitnesse-20150814.jar] 在Fitnesse.slim.SlimService.startWithFactory(SlimService.java:77) [fitnesse-20150814.jar] 在 Fitnesse.slim.SlimService.main(SlimService.java:57) [fitnesse-20150814.jar]slim.SlimService.accept(SlimService.java:156) [fitnesse-20150814.jar] 在 Fitnesse.slim.SlimService.startWithFactory(SlimService.java:77) [fitnesse-20150814.jar] 在 Fitnesse.slim.SlimService.main( SlimService.java:57) [fitnesse-20150814.jar]slim.SlimService.accept(SlimService.java:156) [fitnesse-20150814.jar] 在 Fitnesse.slim.SlimService.startWithFactory(SlimService.java:77) [fitnesse-20150814.jar] 在 Fitnesse.slim.SlimService.main( SlimService.java:57) [fitnesse-20150814.jar]

于 2015-12-09T16:20:02.953 回答
0

解决方案: 通过 DbSlim 使用 Fitnesse 连接到 sql 数据库的示例是:

| 脚本 | !-Db Slim 设置-! |!-com.mysql.jdbc.Driver-!| jdbc:mysql://172.55.55.55:3306/AdventureWorks2012 | 测试实验室 | 密码 |

于 2015-12-17T12:39:06.770 回答