问题标签 [testserver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
78 浏览

c# - 在测试项目上解析 DbContext 会返回带有错误 connectionString 的 DbContext

我有一个使用IClassFixture通用工厂类的测试项目。例如

Startup类执行ConfigureServicesConfigure方法之后,它执行 ConfigureWebHost,我在其中删除原始 DbContext 并添加一个在内存中运行的新 DbContext。

我正在解析的 DbContext 具有原始的 connectionString 而不是 InMemory,因此,我所有的测试都在我的原始数据库中插入内容。

这是我如何使用我的WebApplicationFactory

如何解决注入的内存中 DbContext?

0 投票
0 回答
67 浏览

php - Eclipse IDE PHP 2020-06 测试服务器

我是 PHP 开发的新手,在 eclipse ide 上安装测试服务器时遇到了一些困难。基本上,我已经在 Windows 10 机器上安装了带有 eclipse ide 2020-06 的 wampserver x64(apache 2.4、mysql 5.7 和 PHP 7.0)。问题是当我尝试添加测试服务器时,我应该选择什么样的服务器?ZEND 还是 APACHE?我需要配置什么?在我选择apache作为默认测试服务器后,我命名它并找到路径,当谈到调试器时,我选择zend调试器,在我测试它之后,错误会出现这样的。

2

[我应该选择哪个服务器?按理说应该是apache吧?]

3

我已经下载了 php 7.0 的 zend 调试器,并在 apache ini 文件和行尾添加的 php 7.0 ini 文件中配置了 php.ini 文件,

  1. 这是路径[zend]

但对我来说仍然不是没有运气。有人可以启发我吗?百万谢谢:)

0 投票
2 回答
290 浏览

asp.net-core - 如何将 Service Fabric 服务与 AspNet Core WebApi 和 Autofac 一起使用并运行 TestServer

我不知道如何将 AspNet Core 3.1 Web Api 与 Service Fabric 和 Autofac 一起使用,以及如何让它准备好让 TestServer 运行以进行集成/功能测试。

文档非常不完整。

Autofac 文档显示了如何修改Program.cs以构建 autofac 容器,但它没有提及所有 web api 都具有的 Startup.cs 类: https ://autofaccn.readthedocs.io/en/latest/integration/servicefabric.html

此外,Autofac 用于服务结构的唯一示例不是 Web api:https ://github.com/autofac/Examples/tree/master/src/ServiceFabricDemo

还有其他问题没有有效答案: Service Fabric AspNet Core 3.1 Autofac WebHostBuilder

有没有人有任何关于如何实现这一目标的例子?

我可以实现以下(请参阅我的 GitHub 存储库与示例

  • 具有无状态 AspNet Core WebApi 项目的服务结构(dotnet core 3.1)
  • 使用 Microsoft Dependency Injection 注册服务
  • 使用 TestServer 在 http 端点上运行集成测试,并且能够以干净的方式覆盖依赖注入注册,而无需创建另一个 Startup 类

我想要完全相同,但使用 Autofac 作为 DI 容器。


更新 1:我无法将 Autofac 添加到 aWebHostBuilder并且ConfigureServices(IServiceCollection services)根据 AspNet Core 3.1+ 必须是无效的,所以这就是我被卡住的地方。如何在我的示例中替换 MS 依赖注入

0 投票
1 回答
117 浏览

asp.net-core - XUnit 与 Identityserver 的集成测试:从 Identityserver 收到的令牌无法匹配密钥

我目前正在尝试在具有 2 台服务器的环境中实施集成测试:

  • .NET Core API 服务器
  • IdentityServer4 身份验证服务器

经过一番努力,我设法让两者相互通信,但是,IdentityServer 在尝试确认 JWT 令牌(通过 API)时抛出以下错误:

承载未通过身份验证。失败消息:IDX10501:签名验证失败。无法匹配密钥:孩子:'8C1D5950D083E20D4B20DE9B37AC71FAEF679469'。

我会尽量保持代码示例简短:

在 XUnit 启动中,我为两个 TestServer 配置和创建客户端。

这是我要运行的实际测试

这里是 GetAccessToken,它返回集成用来将自己标识为用户的 JWT 令牌……至少这是计划。

通过此函数生成的 JWT 令牌与普通网站请求之间的唯一可识别区别是缺少公钥(根据 jwt.io)。

最后,因为我认为这一点可能有用,这里是 API 的 Startup.cs 的一部分,我在其中强制使用 JWTBackChannelHandler

非常感谢您的帮助,我已经对此一无所知了。如果您需要更多信息,请告诉我,我很乐意提供。

0 投票
1 回答
160 浏览

asp.net-core - 配置 OData 测试服务器

尝试为我正在为 OdataQueryOptions 类编写的一些扩展设置单元/集成测试。我正在使用 .net 核心 3.1。

为了创建 SUT 实例 - 我需要一个 HttpRequest。我使用WebApplicationFactory创建的

我安排测试使用 TestServer 来生成 HttpContext。然后使用 OdataQueryContext 和 HttpRequest 实例化 OdataQueryOptions 对象。

在对象的实例化过程中出现异常:

深入研究正在抛出的实际方法 - 这是因为 IServiceProvider 为空。这不应该由主人处理吗?

更新:

我稍微修改了测试方法,以便消除 WebApplicationFactory 类。

相反,我使用 IWebHostBuilder 创建了一个 TestServer:

然后创建TestServer:

我得到同样的例外。为什么 IServiceProvider 为空?

0 投票
1 回答
173 浏览

.net-core - 通过 SSL 使用 .net core TestHost/TestServer 调用第三方容器:使用 Testservers CreateClient() 方法绕过 SSL 验证

我正在尝试使用dotnet-testcontainers library 将 keycloak 作为 testcontainer 添加到我的 .net core (5) 集成测试中。

我的问题是,我正在为 HTTPS 支持而苦苦挣扎,因为我的集成测试使用自签名证书和TestServer -Class 的容器。

准确地说,我正在使用 Microsoft 的 TestServer 类来创建具有内存配置的真实 API 请求,以使用具有暴露端口 8443 及其自签名证书的 keycloak-testcontainer。

问题是:我无法将 a 添加HttpClientHandler到 TestServers HttpClient(created via serverCreateClient()) 以允许此处理程序中的不受信任的证书。我在分支 apitests-https 上创建了一个具体示例。失败的测试可以在这里找到,它在SucceedsWhenGetRequestWithTokenReturnsListOfArticles测试方法中。我在课程和 DemoApi 的 Startup.cs 中添加了一些注释 - 显示我尝试过的项目。

结果,TestServers 内部 Jwt 中间件使用默认的 HttpClient 并抛出以下 AuthenticationException:

我已经尝试了多种方法来使其工作,这些都在代码中进行了注释。

  • DemoApi/Startup.cs:尝试使用以下代码添加我自己的“测试”环境:

    ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | 安全协议类型.Tls11 | 安全协议类型.Tls12; ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;

UseEnvironment("Testing")在 Api 测试中创建 TestServer-Instance 时使用它。调试显示代码被调用,但仍然发生异常。

  • DemoApiTestsApi/BaseFixture.csDemoApiTests/Infrastructure/Persistence/KeycloakTest.cs:请参阅此处了解我自己的 HttpClient 的工作实现,它带有处理程序以获取一般的令牌(这在分支中有效) -GetTestToken是 BaseFixture 中的方法。

所以,老实说,我对如何使用 TestServer 或其他方式进行这项工作有点想法。本质上,我需要在BaseFixture.GetTestToken()/KeycloakTest.cs中使用的处理程序也可以在我的 TestServer 实例中使用,但不能将其应用于CreateClient()不接受参数的情况。非常感谢任何帮助,可能是解决方案或提示以另一种方式解决此问题。当有另一种解决方法时,TestServer 不一定是固定的。

0 投票
0 回答
116 浏览

asp.net-core - API调用另一个API时的集成测试

我在同一个解决方案上有两个 API。我们称它们为 API-1 和 API-2。

API-1 计算一些东西,其中一个变量是通过 http 客户端从 API-2 获取的。

当我为 API 编写集成测试时,我为 API-1 做了一个新的 TestServer 实例,我将 API-2 调用嵌套在 API-1 中,但我拥有的测试服务器仅适用于 API-1。

这是我已经尝试过的(但没有用):

即使这样做,我也无法在测试中从 API-1 调用 API-2。

是否可以在该集成测试中调用这两个 API?我的代码设计不好?我应该模拟这个嵌套的 API 调用吗?我怎么做?

0 投票
0 回答
62 浏览

.net-core - 有没有办法只使用 Httpclient 而不使用 TestServer.GetTestClient() 来调用 TestServer?

我在 .NET Core 5.0 中构建了一个单元测试项目来测试我的 API。我已经使用 HostBuilder 创建了一个测试服务器。在我的单元测试类中,我使用 HttpClient 客户端调用 API;客户端 = TestServer.GetTestClient(); 在所有方法中。它工作正常,没有问题。

但是在请求进入 BL(业务逻辑级别)的几个单元测试方法中,我需要调用 TestServer 以获取令牌,然后实际问题开始了。如果不使用 TestServer.GetTestClient(),我无法使用 Httpclient 拨打电话,因为如果我这样做,它表示托管服务器已主动拒绝连接。而且我无法使用 TestServer.GetTestClient() 进行调用,因为它将是对主项目的循环依赖。

有没有办法只使用 Httpclient 而不使用 TestServer.GetTestClient() 来调用 TestServer?

0 投票
0 回答
143 浏览

telegram - 登录“测试服务器”失败

我尝试根据图书馆的文档 登录Telegram 测试服务器,以避免在使用 Telethon 测试我的代码时污染我的原始帐户。https://docs.telethon.dev/en/latest/developing/test-servers.html#test-servers

它不断返回

'无效的代码。请再试一次。'

之后我尝试通过Telegram 官方桌面应用程序注册帐户 (添加另一个帐户 - 测试服务器)但现在它说

'您已删除帐户太多次,请过几天再试'

我根本没有删除/重新创建我的帐户!

知道发生了什么吗?我应该如何注册并登录到测试服务器帐户并将其正确用作我的客户帐户?

保持安全 V

0 投票
0 回答
30 浏览

telegram - 如何在 TestServer 上第一次解析用户(以前没有遇到过)?

我刚刚开始使用Pyrogram开发 TG-Clients。首先,尝试在[测试服务器]上试用我的脚本以确保一切正常。因此,由客户端库本身(测试编号)创建了两个用户帐户,然后尝试通过这些帐户之间的交互来运行示例工作流,但似乎没有办法与另一个“会面” (这是能够交互的先决条件) . 顺便说一句: 已经尝试过add_contact(),,,到“自我” create_group()send_message() 包括消息中提到的“目标帐户”,但所有这些都被视为“交互”并遵循相同的方案(目标用户需要存在于 .session 本地文件中才能与之交互)。尽管在 .session 文件中有解决用户的方法(例如通过 id/phone/username 搜索用户),但我需要一种方法来解决用户问题。任何建议将不胜感激。 PS: 对于它的价值,来自 TG-TestServers 身份验证工作流程的“回调代码”最近已从(五倍 DC 编号变为六倍)需要在文档https://docs.pyrogram 中进行更正。 org/topics/test-servers#test-numbers 保持安全所有和平 V