我在两台机器之间遇到了一个奇怪的问题。这两台机器都是带有Internet Explorer 11的Window 7 SP1。我使用MVC4与Visual Studio 2013和Selenium Web Driver进行Web UI测试。
当运行我的UI测试时,每个测试都必须登录系统。在我的控制器代码中,我有一个使用以下代码的方法:
private const string CurrentUserSessionKey = "CurrentUser";
private ICache _cache;
public virtual User User
{
get
{
User invokingUser = null;
if (HttpContext.Current.Session[CurrentUserSessionKey] != null)
{
invokingUser = HttpContext.Current.Session[CurrentUserSessionKey] as User;
}
return invokingUser;
}
set
{
HttpContext.Current.Session[CurrentUserSessionKey] = value;
}
}
奇怪的是你发现它在开发环境中工作,而不是在测试环境中工作。
在我的开发环境中,它记录了用户。在我的生产环境中,HttpContext.Current.Session
在发布到登录控制器时似乎总是为空。
答案 0 :(得分:0)
在我的测试机器中,我必须使用
<sessionState mode="InProc" timeout="20" cookieless="AutoDetect" />
Look here for more info on the SessionState directive.
允许测试运行