为什么PostgreSQL的SOCI回归测试在Windows上失败
Why SOCI regression tests for PostgreSQL fail on Windows?
我使用Visual Studio 2015在Windows 10上构建和测试SOCI 3.2,使用以下批处理:
SET PREFIX=..soci-3.2.3-install
SET POSTGRES_DIR=E:PostgreSQL9.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%liblibpq.lib"^
-DSOCI_POSTGRESQL_TEST_CONNSTR="host=localhost port=5432 dbname=postgres user=eagui"^
..soci-3.2.3
nmake
nmake test
我还在构建之前注释soci-3.2.3coresoci-platform.h
中的第27行,以避免由VC头之一引起的宏重定义错误。我确保E:PostgreSQL9.5bin
被加到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和如何修复它吗?
用户搜索路径中设置的模式中必须至少有一个存在于数据库中
默认情况下,搜索路径被设置为查找以用户命名的模式。当然,这是可以更改的,因此为了查看要查找哪些模式,可以运行SHOW search_path;
命令。对于任何新创建的用户,搜索路径默认设置为"$user", public
。
在本例中,连接字符串中指定了用户eagui
,但postgres
数据库中不存在eagui
或public
模式。创建其中一个模式可以使测试通过。
相关文章:
- Active Directory:从网络服务帐户下运行的Windows服务调用ADsOpenObject时失败
- AWS AMI 中的 Windows DPAPI 失败,访问被拒绝
- 从 Linux OMI (omicli) 到 Windows WMI 的连接失败,并出现与 DMTF 相关的错误
- 在 Windows QDir::mkpath 和 QFile::rename 上报告成功,尽管失败了
- 在 Windows 上,stat 和 GetFileAttributes 对于包含奇怪字符的路径失败
- Mongodb C驱动程序在Windows上安装失败
- Windows 套接字和身份验证构建在包含 Poco-Library 时失败
- C++在Linux机器上使用cmake Qt5 Webkit进行交叉编译,使用mingw针对Windows,失败了
- 静态断言失败,出现"Windows headers require the default packing option..."
- GetModuleInformation 在 Windows 10 中的链接上失败
- 使用Outlook 2016:MAPISendMail在Windows应用程序中失败,并返回"MAPI_E_FAILURE"作为错误代码
- Visual Studio 2015 OpenCV Assertion 在 cv::imshow windows 中失败 (size.width>0 && size.height>0.cp
- opencv-wasm构建在windows上失败
- 在分配的结构中初始化 std::map 在 Windows 上失败
- 在Windows 7下可以从C#调用C DLL,但在Windows 10下失败
- C++/LapackE 代码在 Windows 上编译良好,但相同的代码在 Linux 上编译失败
- 在 Windows 7 的 CodeBlocks 16.01 中构建 glfw3 程序失败
- Ostream Tellp在Windows上失败,但在Linux上没有失败
- OpenCV导入在Windows容器中失败(在Windows Server 2016上)
- Rcpp Windows 编译失败