我喜欢Fluent NHibernate来构建我的数据库,到目前为止还没有找到限制让我陷入困境.
但是在我当前的项目中,我希望在产品生命周期的早期阶段就可以发布到生产环境,因此随着我们的进步,期望在数据库模式中进行许多小的更改.
我想使用像migratordotnet这样的工具跟踪"迁移"中的这些DDL和DML更改.但我的问题是:是否有可能让这两个工具(或类似工具)协同工作?
根据DRY的精神,如何从Fluent Nhibernate中的映射中获取模式更改?这可能吗?
或者更好的方法是将模式生成留给像migratordotnet这样的工具,并让Fluent NHibernate只具有映射的可响应性?嗯,这看起来似乎更好地分离了工具级别的问题.
干杯!
下面的代码片段工作正常,但我在使用该wait.until()行时有点麻烦:
wait.until(new ElementPresent(By.xpath("//a[@title='Go to Google Home']")));
Run Code Online (Sandbox Code Playgroud)
它有效,但我想发送我的PageFactory WebElement homePageLink代替:
wait.until(new ElementPresent(homePageLink));
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
这些新奇的Selenium 2功能让我的头脑有点旋转,我找不到太多的文档.
谢谢.
public class GoogleResultsPage extends TestBase {
@FindBy(xpath = "//a[@title='Go to Google Home']")
@CacheLookup
private WebElement homePageLink;
public GoogleResultsPage() {
wait.until(new ElementPresent(By.xpath("//a[@title='Go to Google Home']")));
assertThat(driver.getTitle(), containsString("Google Search"));
}
}
public class ElementPresent implements ExpectedCondition<WebElement> {
private final By locator;
public ElementPresent(By locator) {
this.locator = locator;
}
public WebElement apply(WebDriver driver) {
return driver.findElement(locator);
}
}
Run Code Online (Sandbox Code Playgroud) 下面,在CreateTest中,uponsuccessful,我想从CreateTest重定向到Tests.
我想做类似以下的事情:
public ActionResult Tests(int ID, string projectName)
{
TestModel model = new TestModel (ID, projectName);
return View(model);
}
[HttpPost]
public ActionResult CreateTest(TestModel model)
{
try
{
return RedirectToAction("Tests");
}
catch (Exception e)
{
ModelState.AddModelError("Error", e.Message);
return View(model);
}
}
Run Code Online (Sandbox Code Playgroud) 我试图在ASP.NET MVC 2 Preview 1应用程序中实现一个每请求会话模式,并且我实现了一个IHttpModule来帮助我这样做:
public class SessionModule : IHttpModule
{
public void Init(HttpApplication context)
{
context.Response.Write("Init!");
context.EndRequest += context_EndRequest;
}
// ... etc...
}
Run Code Online (Sandbox Code Playgroud)
我把它放到web.config中:
<system.web>
<httpModules>
<add name="SessionModule" type="MyNamespace.SessionModule" />
</httpModules>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<remove name="SessionModule" />
<add name="SessionModule" type="MyNamespace.SessionModule" />
</modules>
Run Code Online (Sandbox Code Playgroud)
但是,"初始!" 永远不会写入页面(我使用的是内置的VS Web服务器,Cassini).另外,我已经尝试在SessionModule中放置断点但它们永远不会破坏.我错过了什么?
我刚刚开始使用adobe livecycle.我不需要从开发人员的角度来理解生命周期,但截至目前我必须进入测试实时循环应用程序.我应该在哪里开始,以便我了解生命周期的基础知识.例如,我想知道看到的文件夹是什么.请参考我的livecycle教程
我正在使用AngularUI路由器,我正在尝试嵌套/子链接.
一切正常,但我如何在联系人选项卡中选择/激活链接?
基本上,我需要能够在加载联系页面时选择/主动联系一个链接.目前它不会出于某种原因阅读,controlleroneCtrl除非我点击链接联系一个.
angular
.module ('myApp', ['ui.router'
])
.config (['$urlRouterProvider', '$stateProvider', function ($urlRouterProvider, $stateProvider) {
$urlRouterProvider.otherwise ('/summary');
$stateProvider.
state ('summary', {
url: '/summary',
templateUrl: 'summary.html',
controller: 'summaryCtrl'
}).
state ('about', {
url: '/about',
templateUrl: 'about.html',
controller: 'aboutCtrl'
}).
state ('contact', {
url: '/contact',
templateUrl: 'contact.html',
controller: 'contactoneCtrl'
})
// Sub page
.state('contact.one',{
url: '/contact.contactone',
templateUrl: 'one.html',
controller: 'contactoneCtrl'
})
// Sub page
.state('contact.two',{
url: '/contact.contacttwo',
templateUrl: 'two.html',
controller: 'contacttwoCtrl'
});
}]);
Run Code Online (Sandbox Code Playgroud)
Plunker:http://plnkr.co/edit/DWjp5M6kJt2MyBrasfaQ?p=preview
我想使用XPath(或其他Selenium DSL定位器)来访问动态创建的iframe.我的目标是对动态iframe的内容做一些断言.
在iframe不具有ID和只有下列HTML属性:
src="javascript:""" style="position: absolute; left: -2000px;"
Run Code Online (Sandbox Code Playgroud)
如果我能以某种方式选择框架iframe,那么我可以assertText或使用XPath来测试iframe内部.
但是,简单的方法似乎失败了.由于selectFrame("index=0")某种原因失败了.也许我需要一些方法来waitFor将iframe被加载.但我似乎无法为其创建定位器标识符iframe,所以我不能waitFor.
我已经为tinyMCE创建了一个插件,可以使用MathJax在编辑器数学公式中插入.此插件在iframe中打开一个弹出窗口(使用jQuery),然后启动一个触发器事件,以便在tinyMCE活动编辑器中插入输入的公式.
我的代码在Chrome和Firefox中正常工作(创建一个pre插入textarea的插入位置),但在IE中,文本插入textarea的开头.
我正在使用这样的setContent方法:
tinyMCE.activeEditor.selection.setContent(text to insert, {format: 'bbcode'});
Run Code Online (Sandbox Code Playgroud)
我尝试ed.focus()在插入之前使用以及在StackOverflow中找到的其他建议,但没有任何对我有用.
此外,我尝试在打开弹出窗口之前保存插入位置,并在插入时恢复它但无论如何都不起作用.
有任何想法吗?
提前致谢.
BrowserStack是一个功能强大的平台,可以针对最新和最新的浏览器测试网站.到现在为止还挺好.
BrowserStack还提供API
API具有代表加载特定URL的特定浏览器(版本)的worker的概念.
这样的工作者实例可以做些什么有用的事情?
如何将这样的工人与Selenium测试结合起来?
如何将这样的工人与单元测试(Python)集成?
如果使用具有视频播放器的特定网站实际加载和播放视频(例如,用于跨浏览器视频测试),如何使用此类工作人员进行测试?
很多人都写过使用Automapper将域对象(模型)映射到视图模型,我发现这些模型非常有趣和有用,但我的问题是如何做相反的事情.我理解这个过程的复杂性以及为什么Automapper在这种情况下不起作用,但我必须在表单发布时做很多事情,特别是在更新时.
我有一个模型,我将它映射到视图模型,然后我向用户呈现一个表单.然后,表单被发布,因为模型可能非常复杂,我使用自定义ModelBinder来处理响应并构建一个不会直接持久化的新模型.相反,我从数据库加载原始模型并调用方法从发布的更新它而不破坏任何东西.但这变得重复,也许有更好的方法.
我见过的示例非常模型有限且天真,但在我们的应用程序中,我们现在可能有50多个表单发布方案,如此一个并且正在增长.
asp.net-mvc ×3
selenium ×3
.net ×2
iframe ×2
adobe ×1
angularjs ×1
asp.net ×1
automapper ×1
browserstack ×1
forms ×1
javascript ×1
jquery ×1
livecycle ×1
migration ×1
python ×1
tinymce ×1
webdriver ×1