当我们不忽略specflow测试时,生成中的生成失败。我们所有的测试都会返回一个http状态代码401 auth失败,当实际期望达到200或422等。这只发生在我们的构建上,当这些测试在本地运行时它们都会通过。我们在specflow测试中指定了用户名和密码,它们都是硬编码的,那么为什么在Team上构建时,这不起作用或失败呢?
例如。
2015-11-24T16:50:48.9936518Z ##[error]Error Message:
2015-11-24T16:50:48.9936518Z ##[error] Expected: 200
2015-11-24T16:50:48.9936518Z ##[error] But was: 401
2015-11-24T16:50:48.9936518Z ##[error]
2015-11-24T16:50:48.9936518Z ##[error]Stack Trace:
2015-11-24T16:50:49.0092775Z ##[error]at Test.Specifications.GetImageByIdSteps.ThenTheResultShouldBe(Int32 p0) in C:\a\1\s\Web\Web.Test\Specifications\GetImageByIdSteps.cs:line 36
2015-11-24T16:50:49.0092775Z ##[error]at lambda_method(Closure , IContextManager , Int32 )
2015-11-24T16:50:49.0092775Z ##[error]at TechTalk.SpecFlow.Bindings.BindingInvoker.InvokeBinding(IBinding binding, IContextManager contextManager, Object[] arguments, ITestTracer testTracer, TimeSpan& duration)
2015-11-24T16:50:49.0092775Z ##[error]at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStepMatch(BindingMatch match, Object[] arguments)
2015-11-24T16:50:49.0092775Z ##[error]at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.ExecuteStep(StepInstance stepInstance)
2015-11-24T16:50:49.0092775Z ##[error]at TechTalk.SpecFlow.Infrastructure.TestExecutionEngine.OnAfterLastStep()
2015-11-24T16:50:49.0092775Z ##[error]at TechTalk.SpecFlow.TestRunner.CollectScenarioErrors()
2015-11-24T16:50:49.0092775Z ##[error]at Web.Test.Specifications.GetImageByIdFeature.ScenarioCleanup() in C:\a\1\s\Web\Web.Test\Specifications\ImageGetImage.feature.cs:line 0
2015-11-24T16:50:49.0092775Z ##[error]at Web.Test.Specifications.GetImageByIdFeature.GetImage(String imageId, String userName, String password, String http_Status_Code, String[] exampleTags) in C:\a\1\s\Web\Web.Test\Specifications\ImageGetImage.feature:line 12
发布于 2015-11-25 17:27:26
之所以发生这种情况,是因为连接字符串的转换发生在发布而不是构建上。因此,在构建它时,服务器无法访问在本地连接字符串上声明的连接(因为转换没有发生)。我假设在构建时,转换发生在连接字符串上。情况并非如此,转换只在发布时发生。
https://stackoverflow.com/questions/33899873
复制相似问题