我想做这个:
interface IBase
{
string Property1 { get; }
}
interface IInherited : IBase
{
string Property1 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
因此,这IInherited将具有允许添加功能的继承属性.Property1set
那可能吗?语法是什么?
编辑:请注意我把"继承"这个词放在粗体字中.我具体要求继承该属性,而不是将其隐藏在新属性背后.
我注意到,当递增计数器时,当计数器的值很大时,它会明显变慢.我在Chrome,Firefox和IE11中尝试过它,所有这些都表现得很差.
请参阅此处的 jsperf test (下面的代码):
var count1 = 0;
var count2 = new Date().getTime();
var count3 = 1e5;
var count4 = 1e9;
var count5 = 1e12;
var count6 = 1e15;
function getNum1() {
return ++count1;
}
function getNum2() {
return ++count2;
}
function getNum3() {
return ++count3;
}
function getNum4() {
return ++count4;
}
function getNum5() {
return ++count5;
}
function getNum6() {
return ++count6;
}
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
我试图找出一种在angularjs应用程序上运行测试的简单方法.我是测试世界的新手,因此有点难以理解所有选项以及它们之间的区别.
我的目标:能够在我的IDE中运行测试 - Eclipse.并在谷歌浏览器上测试代码.
我发现茉莉花是编写js单元测试的明显选择.问题是为茉莉花测试和e2e测试选择跑步者.
为了保持简单,我想出了以下设置:在jasmine中编写单元测试,在phantomjs和syn.js中编写e2e测试.然后配置eclipse以运行phantomjs作为外部工具,以便输出将在eclipse中转到控制台.
我还打算在Jenkins有一个CI工作,而且根据我的理解,Jenkins也可以运行幻像,所以理论上这个解决方案对CI也是一样的.
另外,还有像Karma和Protractor这样的测试运行工具.一方面,他们似乎被推荐,但另一方面,在某些情况下,他们似乎有点矫枉过正.它们需要运行许多不同的工具/服务/进程才能工作,如果它中断,它似乎很难保持所有设置.
根据我的理解:量角器在运行在nodejs上的webdriverjs上运行,它需要一个selenium服务器在后台运行,最重要的是selenium打开真正的浏览器窗口,与无头浏览器测试相比,这似乎有点无意义.
然后是Karma,我还没有完全理解它应该做什么.根据我的阅读,它监视我的项目中的文件,每当文件被更改时,它运行测试.我不确定它是如何运行测试的 - 它是否也使用硒?
最后,还有咕噜咕噜和自耕农,我根本不明白他们做了什么,以及他们如何与我列出的其他工具互动或融合在一起.
如果有人能够澄清这些不同工具的作用以及它们如何组合在一起,我将不胜感激.另外,它们如何与Jenkins一起作为CI服务器?
此外,如果你可以评论我的"更简单的设置" - 它有意义吗?我错过了什么吗?
continuous-integration integration-testing automated-tests unit-testing angularjs
我按照本教程使用GIT和Maven设置Jenkins(稍微改动,因为我使用的是Linux CenOS).
我正试图在GitHub的Demo Maven项目上测试我的设置
Jenkins在尝试执行Maven时抛出异常.所以我尝试git-clone项目并手动运行Maven,它运行正常.
所以问题是Jenkins运行Maven.我尝试搜索谷歌的问题,但找不到任何有用的信息.
我目前的怀疑是:
这是Jenkins的控制台输出:
Started by an SCM change
Building in workspace /var/lib/jenkins/jobs/Omri/workspace
Checkout:workspace / /var/lib/jenkins/jobs/Omri/workspace - hudson.remoting.LocalChannel@7ff79fae
Using strategy: Default
Last Built Revision: Revision af62f13d2374bc00a4b67f7586bfd52b7bda80eb (origin/prepare)
Fetching changes from 1 remote Git repository
Fetching upstream changes from origin
Seen branch in repository origin/HEAD
Seen branch in repository origin/master
Seen branch in repository origin/prepare
Seen 3 remote branches
Commencing build of Revision a9a1fc4a96d4ac4af3ca5e7e3b7393a6df4bf555 (origin/HEAD, origin/master)
Checking out Revision …Run Code Online (Sandbox Code Playgroud) 我正在使用JasperReports和iReport(输出到PDF),我对某个报告有问题:
在报告中我定义了一个组.平均而言,该组的每个"实例"仅包含少量细节行,因此我不希望它们中的每一个都在新页面上开始,因为这会浪费纸张(输出打印在纸上) ).
但另一方面,我不希望有一个组从一个页面开始,到下一个页面结束.例如,如果在第1页上我可以适应前两组和第三组的一半,我希望整个第三组在第2页开始,依此类推.
有没有办法做到这一点?
我有一个显然占用太多内存的.JAR,并抛出异常"Java堆空间"(或类似的东西).
所以我尝试通过CMD运行.JAR,如下所示:
C:\MyFolder>javaw -jar MyJar.jar -Xms64m -Xmx128m
Run Code Online (Sandbox Code Playgroud)
那并没有解决问题.同样的错误.现在,当我检查Windows任务管理器中的进程选项卡时,我注意到我的jar进程比我要求的内存少得多(与没有参数运行它相同).
为什么忽略参数?
此外,我认为异常是在进程达到100mb内存使用量的时候抛出的.GC是否有可能试图释放内存,这是导致问题的原因?我可以为GC设置任何参数来防止这种情况吗?
谢谢,Malki :)
说我在一个ng-repeat条款中有这个div :
<div ng-repeat="item in list" class="myDiv" ng-click="doStuff(item)">
{{item.title}}
</div>
Run Code Online (Sandbox Code Playgroud)
它基于这个模型:
$scope.list = [
{ 'title': 'Item 1', 'someData': 'lalala' },
{ 'title': 'Item 2', 'someData': '666' },
{ 'title': 'Item 3', 'someData': 'qwerty' }
];
Run Code Online (Sandbox Code Playgroud)
然后我最终得到3个重复的div.
现在我有一个分析页面的外部脚本,我想提取元素的数据.
因此,例如,如果我选择的第一个div var div1 = $('div.myDiv:first')我能得到的属性ng-click,并ng-repeat从它.我也可以angular.element(div1).data('$binding')用来获得绑定{{item.title}}.
但我真正想要的是这个特殊div的单个项目数据:即我想编写一个getItemData(element)可以获取div1和返回的函数{ 'title': 'Item 1', 'someData': 'lalala' }.
如何才能做到这一点?
请注意,我需要一个既能用于转发器绑定又能用于常规绑定的解决方案.我基本上需要知道绑定到每个元素的实际数据.
我正在使用TypeScript,我想使用Closure-Compiler来缩小和混淆我在构建TS代码后得到的JS输出.
我读到GCC能够根据类型定义进行混淆.据我所知(如果我错了请纠正我),这意味着如果我的代码上有类型注释,那么GCC将使用它们来进行更好的混淆.
例如,对于obj.somePropGCC,当前someProp在我的代码中查找属性名称的所有实例,而不考虑它所在的对象,并将所有这些实例替换为相同的混淆名称(例如o.a).
但是如果我在我的代码上有类型注释,GCC将能够知道哪个对象属于哪种类型并相应地对其进行模糊处理 - 因此两个不同类型的相同属性名称将被混淆为两个不同的名称.
问题:
编辑
我需要能够在动态相对路径上使用 require() - 这意味着相对路径需要根据当前环境进行更改。
对于这种情况,最佳做法是什么?
我想到了这样的事情:
var module = require(process.env.MY_MODULES_PATH + '/my-module');
Run Code Online (Sandbox Code Playgroud)
但是环境变量不是很方便。
还有其他的可能性吗?
编辑
require()我才意识到这是“嘲笑”的一个特例。require()例如,是否有关于如何模拟单元测试的最佳实践?
我在 Redshift 中有 2 个表,其中一个有一列包含正则表达式字符串。我想像这样加入他们:
select *
from one o
join two t
on o.value ~ t.regex
Run Code Online (Sandbox Code Playgroud)
但这个查询会抛出一个错误:
[Amazon](500310) Invalid operation: The pattern must be a valid UTF-8 literal character expression
Details:
-----------------------------------------------
error: The pattern must be a valid UTF-8 literal character expression
code: 8001
context:
query: 412993
location: cgx_impl.cpp:1911
process: padbmaster [pid=5211]
-----------------------------------------------;
Run Code Online (Sandbox Code Playgroud)
据我在文档中搜索的了解,正则表达式运算符的右侧~必须是字符串文字。
所以这会起作用:
select *
from one o
where o.value ~ 'regex'
Run Code Online (Sandbox Code Playgroud)
这会失败:
select *
from one o
where 'regex' ~ o.value
Run Code Online (Sandbox Code Playgroud)
有没有办法解决?我错过了什么吗?
谢谢!
javascript ×3
angularjs ×2
c# ×1
cmd ×1
git ×1
grouping ×1
heap-memory ×1
inheritance ×1
interface ×1
ireport ×1
java ×1
jenkins ×1
linux ×1
literals ×1
maven ×1
maven-3 ×1
node.js ×1
obfuscation ×1
parameters ×1
properties ×1
regex ×1
require ×1
typescript ×1
unit-testing ×1