sql >> データベース >  >> RDS >> Mysql

JUnitテストケース用にMySQLをメモリ内で実行する方法はありますか?

    MySQLと完全に互換性があり、JUnitテストケース内で使用できるインメモリデータベースを使用する最も簡単な方法は、imho MariaDB4jです。Gradle(/ Maven)依存関係が必要です( http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22mariaDB4j%22 )および開始する数行のコード:

    DB database = DB.newEmbeddedDB(3306);
    database.start();
    Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/test", "root", "");
    

    スタートアップスクリプトは

    を介して含めることができます
    database.source("path/to/resource.sql");
    

    GitHub readmeの詳細: https://github.com/vorburger/MariaDB4j

    編集:私はこの答えにいくつかのヒントを追加しています:MariaDB4jはシステムの一時フォルダにファイルを追加しているようです。したがって、組み込みの方法で機能します。つまり、何もインストールする必要はなく、目的のビルドツールを介して依存関係を使用できます。しかし、これは真のメモリ内のみのソリューションではありません。したがって、単体テストはファイルやデータベースに依存してはならないため、単体テストについて話すことはできません。



    1. バックアップ前のリカバリ要件

    2. T-SQLとSQL

    3. Microsoft SQL Server 2012 Enterprise Edition(Service Pack 1付き)のインストール

    4. PHP接続に失敗しました:SQLSTATE[HY000][2002]接続が拒否されました