0

このバッチを使用して、Visual Studio 2015 を使用して Windows 10 で SOCI 3.2 をビルドしてテストします。

SET PREFIX=..\soci-3.2.3-install
SET POSTGRES_DIR=E:\PostgreSQL\9.5

cmake^
 -G "NMake Makefiles"^
 -DCMAKE_BUILD_TYPE=Release^
 -DCMAKE_INSTALL_PREFIX=%PREFIX%^
 -DSOCI_TESTS=ON^
 -DWITH_ODBC=OFF^
 -DWITH_POSTGRESQL=ON^
 -DPOSTGRESQL_INCLUDE_DIR="%POSTGRES_DIR%\include"^
 -DPOSTGRESQL_LIBRARIES="%POSTGRES_DIR%\lib\libpq.lib"^
 -DSOCI_POSTGRESQL_TEST_CONNSTR="host=localhost port=5432 dbname=postgres user=eagui"^
 ..\soci-3.2.3

nmake
nmake test

soci-3.2.3\core\soci-platform.hまた、VC ヘッダーの 1 つによって引き起こされるマクロ再定義エラーを回避するために、ビルド前に27 行目にコメントを付けます。E:\PostgreSQL\9.5\binに追加されていることを確認しPATHます。コマンドプロンプトには管理者権限があります。

バッチを実行すると、テストから次の出力が得られます。

...
3/4 Test #3: soci_postgresql_test .............***Failed    1.37 sec
    Start 4: soci_postgresql_test_static
4/4 Test #4: soci_postgresql_test_static ......***Failed    0.17 sec

50% tests passed, 2 tests failed out of 4

Total Test time (real) =   1.63 sec

The following tests FAILED:
          3 - soci_postgresql_test (Failed)
          4 - soci_postgresql_test_static (Failed)
Errors while running CTest
NMAKE : fatal error U1077: 'echo' : return code '0x8'
Stop.

信頼接続を受け入れるように PostgreSQL サーバーを構成しました。postgresデータベースとeaguiユーザーはサーバーに存在します。

PostgreSQL のテストに合格しない理由と、それを修正する方法はありますか?

4

1 に答える 1

0

ユーザーの検索パスに設定されたスキーマの少なくとも 1 つがデータベースに存在する必要があります。

デフォルトでは、検索パスは、ユーザーにちなんで名付けられたスキーマを探すように設定されています。これはもちろん変更できるため、どのスキーマが検索されているかを確認するには、SHOW search_path;コマンドを実行します。作成された新しいユーザーの場合、検索パスはデフォルトで に設定されます"$user", public

この場合、ユーザーeaguiは接続文字列で指定されましたが、データベースにスキーマが存在しeaguiませんでした。これらのスキーマのいずれかを作成すると、テストに合格します。publicpostgres

于 2016-10-01T17:03:44.127 に答える