是否可以从控制器构造函数中获取当前主机名?
Request和HttpContext对象都是null,因此Request.Url不产生任何结果.
public class HomeController : Controller
{
private readonly MyEntities _entities;
public HomeController()
{
//
var hostname = Request.Url;
if (hostname.Contains("localhost")) EFConnectionStringName="localhost";
else EFConnectionStringName="default";
_entities = new MyEntities(EFConnectionStringName);
}
...
Run Code Online (Sandbox Code Playgroud)
我在这里要解决的更大问题是根据主机名为Entity Framework选择连接字符串.想法?
Cypress 的新手,到目前为止一直很顺利,直到我想伪造一个网络请求。代码是这样的:
describe('Some test', function(){
it('Can fake out an XHR response', function(){
cy.server()
cy.route('https://reqres.in/api/users', [{ id: 1, name: 'Pat' }]).as('getMessages')
cy.request('https://reqres.in/api/users')
cy.wait(['@getMessages'])
Run Code Online (Sandbox Code Playgroud)
...
无论我尝试什么,我都会得到:
CypressError:重试超时:cy.wait() 等待 5000 毫秒超时,等待对路由的第一个请求:'getMessages'。从未发生过请求。
我在这里做错了什么?
编辑:我将代码更改为:
cy.server()
cy.route('https://reqres.in/api/users', [{ id: 1, name: 'Pat' }]).as('getMessages')
cy.request('https://reqres.in/api/users')
cy.wait(['@getMessages'])
Run Code Online (Sandbox Code Playgroud)
但结果如下:
我有一些数据驱动的单元测试,基本完成如下所述:
http://msdn.microsoft.com/en-us/library/ms182527.aspx
对于给定的测试运行,我可以得到如下结果:
IOrderedEnumerable<ITestCaseResult> runDetails = WebApiApplication.TeamProject.TestRuns.Find(testRunId).QueryResults().OrderBy(r=>r.Outcome);
Run Code Online (Sandbox Code Playgroud)
在每个ITestCaseResult中,我可以通过以下方式获取错误消息:
testCaseResult.ErrorMessage
Run Code Online (Sandbox Code Playgroud)
太棒了,但是当有数据驱动测试的结果时,我无法弄清楚如何获得迭代结果.它们出现在生成的.trx文件中,但不在ITestCaseResult中的任何位置.

有关如何通过API获取它们的任何想法?
这看起来很基本,但我看不出它是如何或为什么这样表现的:
function ReturnStuff{
$a=1,2,3,4,5
$a.ForEach{
return $_
}
}
ReturnStuff
Run Code Online (Sandbox Code Playgroud)
为什么这会给我:1 2 3 4 5而不是1?
我需要通过Powershell以'1'作为参数启动Windows服务,如下所示:
所以基本上我想用powershell做这样的事情:
Start-Service _MyService 1 <- won't work
Run Code Online (Sandbox Code Playgroud)
谷歌搜索没有引起任何关注,也许我正在寻找错误的东西,但我不敢相信这是不可能的.有线索吗?
我想启动一个 WPF 应用程序并调用 ViewModel 上的方法来控制该应用程序以进行集成测试。就像是:
[Test]
public void Test1()
var application = new MyApp();
application.InitializeComponent();
application.Run();
Run Code Online (Sandbox Code Playgroud)
(好的,这会在此时停止测试执行,大概会将控制权传递给 WPF 应用程序。不知道如何处理这个问题。在单独的线程或其他线程中启动?)
然后我希望能够在 ViewModel 上获取和设置值,如下所示:
application.MyViewModel.SomeProperty = "A value!";
Run Code Online (Sandbox Code Playgroud)
这里的目标是在集成意义上测试 WPF 应用程序,而不是求助于 WinAppDriver、White、CodedUI 或类似的任何混乱的东西。有想法吗?