我正在尝试在nCrunch中设置selenium测试,它将测试输出到自己的临时文件夹.
我在创建驱动程序(new PhantomJSDriver())时遇到以下错误:
OpenQA.Selenium.DriverServiceNotFoundException:PhantomJS.exe文件不存在于当前目录或PATH环境变量的目录中.
但是我已检查并PhantomJS.exe确实存在于当前目录(\ bin\debug)中.
然后我尝试使用new PhantomJSDriver(".\\")哪个应该是当前目录,并且确实有效.
Selenium在这条消息中指的是什么是"当前目录"?
环境
我在Framework 4.0上使用Entity Framework 5.(这意味着我实际上使用的是EF 4.4).作为实体我使用STE(自我跟踪实体)因为我在N-Tier应用程序中工作.我们使用数据库驱动的方法,因为EF是在游戏后期引入的.
上下文
我有两个实体,彼此都有一个导航属性.(EntityA具有EntityB的导航属性,EntityB具有EntityA的导航属性).关系是'EntityA> One-To-Many> EntityB'.当我想通过LINQ表达式加载子实体时,我需要使用INCLUDE(STE => Eager Loading),因为我将通过几个层传递所有数据.
代码
这是我的代码,用它的EntityB孩子调用EntityA.
using (var ctx = new MyEntities())
{
var result = (from s in ctx.EntityA.Include("EntityB")
where s.Id = 11111
orderby s.TimeUpdated descending
select s)
.Take(10)
.ToList();
return result;
}
Run Code Online (Sandbox Code Playgroud)
错误
System.StackOverflowException {无法计算表达式,因为当前线程处于堆栈溢出状态.}
删除'INCLUDE'时没有错误.我想原因很简单.我想加载带有子记录EntityB的EntityA,EntityB记录每次都要加载其父EntityA,而EntityA ......我想每个人都理解这里的无限循环.
我的解决方案或替代品
这个问题
在我的情况下,有更好的替代方法或方法来解决这个问题吗 我应该继续提出我提出的替代方案吗?因为我希望有一个更好,更清洁的解决方案.
我感谢你的时间
伊恩
我正在使用selenium测试单页应用.我想测试以确保应用程序只在需要时返回服务器.
在selenium中有没有办法声明没有发生ajax请求或发生了ajax请求并检查ajax URL?
我正在通过寻找加载div的存在来测试它,但这不是我真正想要测试的,并且当在本地机器上进行测试时它不是很稳定,因为请求有时会超过测试执行.
我最近安装了VS 2015 Update 2.
在更新1中,当我停止调试在IISExpress中运行的站点时,它不会停止该站点.
有很多关于通过关闭编辑和继续来启用此行为的帖子.
禁用编辑并在更新2中继续似乎不再提供此行为,还有另一种方法可以在调试器停止时保持站点运行吗?
在EF核心中,我试图用子集合来计划结果集.
ctx.As.Select(a => new
{
AId = a.Id,
BNames = a.Bs.Select(x=>x.Name) //SubCollection
})
Run Code Online (Sandbox Code Playgroud)
但是当执行此操作时,BNames集合是惰性的,因此当它被枚举时,它会触发每行的单独查询.例如,B集合中的2个项目.
[a].[Id] AS [AId] FROM [As] AS [a]
p_executesql N'SELECT [x].[Name]
FROM [Bs] AS [x]
WHERE @_outer_Id = [x].[AId]',N'@_outer_Id int',@_outer_Id=1
p_executesql N'SELECT [x].[Name]
FROM [Bs] AS [x]
WHERE @_outer_Id = [x].[AId]',N'@_outer_Id int',@_outer_Id=2
Run Code Online (Sandbox Code Playgroud)
在EF6中,相同的查询会产生以下结果(正如我所料):
SELECT
[Extent1].[Id] AS [Id],
[Project1].[C1] AS [C1],
[Project1].[Name] AS [Name]
FROM [dbo].[A] AS [Extent1]
LEFT OUTER JOIN (SELECT
[Extent2].[Name] AS [Name],
[Extent2].[A_Id] AS [A_Id],
1 AS [C1]
FROM [dbo].[B] AS [Extent2] ) AS [Project1] …Run Code Online (Sandbox Code Playgroud) HTML5脚本标记加载指令似乎很酷/sf/answers/1684926141/
是否可以异步加载一堆脚本,但有一个脚本等待执行基于异步完成.
<script src="//some.cdn/jquery.js" async></script>
<script src="//some.cdn/underscore.js" async></script>
<script src="/my-app-which-uses-_-and-jquery.js" defer></script>
Run Code Online (Sandbox Code Playgroud)
我的应用程序脚本是否可以保证在我的库之后执行,还是只能按顺序执行其他延迟脚本?
我觉得捆绑应该被用来将你一起使用的一堆文件分组到浏览器中.这意味着例如我的root风格,我想做类似以下的事情:
var bundle = new StyleBundle("~/Content/style").Include(
"~/Content/mystyle.less",
"~/Content/bootstrap.css",
"~/Content/bootstrap-responsive.css");
bundle.Transforms.Add(new LessTransform());
bundle.Transforms.Add(new CssMinify());
bundles.Add(bundle);
Run Code Online (Sandbox Code Playgroud)
但是,对于捆绑较少文件的自定义转换技术来说,这似乎并不能很好地工作,因为它看起来像将所有文件预先捆绑到单个css文件中,然后再将其传递给LessTransform.据我所知,只有将所有较少的文件捆绑在一起时,此方法才有效.
有没有办法让bundle在同一个bundle中允许less和css文件?
我试图使用powershell安装topshelf服务,但我真的很难让PowerShell运行安装程序.
Function EnsureTopshelfService([string]$serviceName, [string]$servicePath){
$service = get-service $serviceName -ErrorAction SilentlyContinue
if ($service –ne $null){
"$serviceName is already installed on this server";
}
else{
Write-Host "Installing $serviceName...";
#the problem is here
& "`"$servicepath`" install --sudo"
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行此命令时,我得到以下内容
安装测试...&:术语'"c:\ A Test\Test.exe"install --sudo'无法识别为cmdlet,函数,脚本文件或可运行程序的名称.检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试.在C:\ Users\luke.mcgregor\Documents\Test.ps1:11 char:11 +&"
"$servicepath"install --sudo"+ ~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~ + CategoryInfo:ObjectNotFound :("c:\ A Test\Test.exe"install --sudo:String)[],CommandNotFoundException + FullyQualifiedErrorId:CommandNotFoundException
运行"c:\A Test\Test.exe" install --sudo在命令提示符下正常工作,以便与IM如何调用关闭到现有程序的问题.有谁知道我在哪里出错?我对powershell很新,所以我猜它很简单.
编辑: 以下是上述的一个工作示例
Function EnsureTopshelfService([string]$serviceName, [string]$servicePath){
$service = get-service $serviceName -ErrorAction SilentlyContinue
if ($service –ne $null){
"$serviceName is …Run Code Online (Sandbox Code Playgroud) 我刚刚安装了Visual Studio 2013预览版并运行了我的网站.我注意到我的网站中使用的文件越少,没有被正确转换为css,而是作为空白的CSS文件.
似乎在无点的httphandler中出现了问题,因为当我强制缩小捆绑包时,一切正常.
web.config中
<section name="dotless" type="dotless.Core.configuration.DotlessConfigurationSectionHandler, dotless.Core" />
...
<httpHandlers>
<add path="*.less" verb="GET" type="dotless.Core.LessCssHttpHandler, dotless.Core" />
</httpHandlers>
...
<handlers>
<add name="dotless" path="*.less" verb="GET" type="dotless.Core.LessCssHttpHandler,dotless.Core" resourceType="File" preCondition="" />
</handlers>
Run Code Online (Sandbox Code Playgroud)
如果我强行缩小,这个问题似乎就会消失.System.Web.Optimization.BundleTable.EnableOptimizations = false;这表明它处理HTTP处理程序的方式有所不同
我有一个 Nunit 测试,它正在执行一些自动化 UI 测试。
我知道使用 MSTest 您可以在结果中添加屏幕截图(请参阅在 MSTest 中将图像附加到测试报告))
nunit中有类似的东西吗?我可以以某种方式将图片添加到测试结果中吗?我做了一些查找,但找不到类似的东西。
c# ×6
less ×2
selenium ×2
.net-core ×1
ajax ×1
debugging ×1
dotless ×1
ef-core-2.0 ×1
html5 ×1
javascript ×1
ncrunch ×1
nunit ×1
phantomjs ×1
powershell ×1