小编Fea*_*nor的帖子

TestNG如何使用多个线程调用测试方法?

在TestNG文档中,有一节描述如何告诉TestNG使用多个线程调用测试方法:

您还可以指定应从不同的线程调用@Test方法.您可以使用threadPoolSize属性来实现此结果:

@Test(threadPoolSize = 3, invocationCount = 10,  timeOut = 10000)
public void testServer() {
Run Code Online (Sandbox Code Playgroud)

在此示例中,函数testServer将从三个不同的线程调用十次.(强调我的)

我的问题是上面的文字是否意味着

  1. 该方法将使用3个线程总共运行10次
  2. 该方法将共运行30次,每个运行该方法3个线程10次.

我的想法是因为调用计数与方法有关,1是正确的解释,但如果我错了,我会很感激.

testng multithreading

20
推荐指数
1
解决办法
2万
查看次数

Ant中的<pathelement>属性'path'和'location'有什么区别?

我在TestNG中使用Ant Java任务运行Selenium单元测试,如下所示:

<java classpathref="runtime.classpath"
    classname="org.testng.TestNG"
    failonerror="false">
    <arg value="-d" />
    <arg value="${grid.location}/target/reports" />
    <arg value="${lib.location}/testng.xml"/>   
</java>
Run Code Online (Sandbox Code Playgroud)

runtime.classpath是一个包含的路径结构,<pathelement path="${basedir}/target/classes/" />我认为需要让TestNG知道要运行哪些类.

<path id="runtime.classpath">
        ...
        <!-- Target classes -->
        <pathelement path="${basedir}/target/classes/" />
</path>
Run Code Online (Sandbox Code Playgroud)

但是,我在日志中一直看到TestNG找到了0个适用的类.

我最终得到了一位同事的帮助,看来这是关键变化:

<path id="runtime.classpath">
        ...
        <!-- path attribute changed to location -->
        <pathelement location="${basedir}/target/classes/" />
</path>
Run Code Online (Sandbox Code Playgroud)

这也正确地引入了测试类:

   <java classpathref="runtime.classpath"
       classname="org.testng.TestNG"
       failonerror="false">
       <arg value="-d" />
       <arg value="${grid.location}/target/reports" />
       <arg value="${lib.location}/testng.xml"/>
       <classpath>
           <pathelement location="${basedir}/target/classes/" />
       </classpath> 
   </java>
Run Code Online (Sandbox Code Playgroud)

pathlocation属性有什么区别?我已经看过编写一个简单的构建文件(特别是类似路径的结构部分),但是在那本手册中,它看起来比我location更具体path.事实并非如此,但我无法弄清楚原因.

java ant

15
推荐指数
1
解决办法
2万
查看次数

如何通过Java中的闭包来替换/扩充接口?

Java 7将有闭包(最后),我想知道现在如何使用单个方法类/接口(如Runnable,Comparator等)的现有代码.

该代码会被替换吗?将是某种转换?将添加使用闭包的额外方法?

有谁知道这是如何工作/计划是什么?

例如,今天要使用FileFilter,我们可以:

....
File [] files = directory.listFiles( new FileFilter() 
                      public boolean accept( File file ) {
                          return file.getName().endsWith(".java");
                       }
                   });
Run Code Online (Sandbox Code Playgroud)

有谁知道这对Java7有什么用?

也许重载方法File.listFiles来接收一个闭包?

File [] files = directory.listFiles(#(File file){
                    return file.getName().endsWith(".java");
                 });
Run Code Online (Sandbox Code Playgroud)

java closures java-7

11
推荐指数
1
解决办法
354
查看次数

Java中反射的适当和不恰当用途是什么?

Java的反射API显然是一个非常强大的工具,但不是特别面向对象.在哪些情况下使用反射是合适的(反过来说是不合适的)?

java reflection

8
推荐指数
1
解决办法
1395
查看次数

LaTeX - 在序列中的每个新行的开头添加不同数量的水平间距

我正在使用LaTeX进行算法分配,我需要显示Horspool的字符串匹配算法的步骤,类似于教科书中显示的内容.它演示算法的方式是显示每个失败的比较时图案如何沿着文本移动,每个班次都在新线上.该图案显示在文本下方,具有适当的水平间距,表示正在比较哪些字母.

以下是DNA序列的示例:

GAGTAATCCTTCACTTCAAGGCCAGTCTTCACATCTCATCAGA
ACATCTCA
 ACATCTCA
  ACATCTCA
    ACATCTCA
Run Code Online (Sandbox Code Playgroud)

我在几个LaTeX参考文献中喋喋不休.我尝试使用\hspace在每行的开头添加间距,然后\hfill在模式之后和创建换行符之前添加.我没有收到任何错误,但前面没有添加任何空间.该线正确填充.

是否有另一种方法可以将空格添加到每行的开头,或者将其格式化为另一种方式?

formatting latex spacing

6
推荐指数
3
解决办法
4万
查看次数

如何使用Mercurial忽略Eclipse项目的.classpath?

我正在尝试在我的Mac(笔记本电脑)和PC(桌面)之间共享存储库.项目有一些外部依赖项存储在每台机器的不同位置,并在Eclipse项目的.classpath文件中注明.共享项目更改时,依赖项会中断.我正在试图弄清楚如何防止这种情况发生.

我尝试过将.hgignore与以下设置一起使用,但没有成功:

syntax: glob
*.classpath
Run Code Online (Sandbox Code Playgroud)

基于此问题,似乎.hgignore文件不允许Mercurial忽略也提交到存储库的文件.还有另一种方法吗?配置项目以使其工作的其他方法?

mercurial configuration-files hgignore

4
推荐指数
1
解决办法
4527
查看次数

在Swing中创建Java GUI以进行表单输入

好吧,我已经浏览了整个互联网,但却未能找到这个问题的答案,所以也许有人可以提供一些见解.

我正在开发一个相对简单的Java应用程序,它将取代目前用于系统访问请求的Word文档.它旨在允许表单输入新的员工雇用信息 - 名称,所需的访问权限等.

所以这是我的问题.尝试使用所有文本字段和所有内容制作GUI令人惊讶地痛苦.因为每个小部件有点不同,所以在填写表单后获取输入似乎需要为每个小部件单独引用,以便我可以单独调用它们.这意味着一个部分的每个面板有6-10个不同的私有字段.(我尝试将所有类似的小部件添加到列表中并在循环中调用它们,但这似乎不起作用.)

在某些方面,似乎Web表单更适合这种情况,但我没有可用的基础结构.有没有人找到比这更类似的更好的解决方案呢?它似乎只是一大堆代码.请参阅下面的一个想法(我提出了一些评论而不是实际的代码,因为它太长了).谢谢你的期待!

    private JComboBox my_dates;
    private JTextField my_date1;
    private JTextField my_date2;
    private JTextField my_request_date;
    private JTextField my_new_legal_name;
    private JTextField my_new_pref_name;
    private JTextField my_new_username;
    private JTextField my_prev_legal_name;
    private JTextField my_prev_pref_name;
    private JTextField my_prev_username;
    private JTextField my_emp_id;
    private JTextField my_manager;
    private JTextField my_auth_requestor;
    private JTextField my_auth_phone;

    public NameChangePanel(FormSection the_section)
    {
        super();
        initialize();
        buildPanel(the_section.getFields());
    }

    private void initialize()
    {
        // Create all the widgets individuall
    }

    private void buildPanel(List the_fields)
    {
        // add a field label
        // add a …
Run Code Online (Sandbox Code Playgroud)

java user-interface swing

3
推荐指数
1
解决办法
9812
查看次数

Selenium RC测试在verifyTrue失败时通过(selenium.isTextPresent("string"))

我有一套Selenium测试,我在Selenium IDE中创建并移植到Java.在几个测试中,我使用verifyTextPresent命令的Java等价物来确认页面上的一些文本(verifyTrue(selenium.isTextPresent())).

从IDE运行测试时,我在页面上的文本中发现了拼写错误,但是在通过Selenium RC/TestNG运行测试时未捕获到错误.这是我的代码示例和导致问题的文本(拼写错误以粗体显示):

文本:

请更正下面指出的错误.

您需要添加一个至少一个约束.

IDE:

verifyTextPresent | Please correct the errors indicated below.
verifyTextPresent | You need to add at least one restriction.
Run Code Online (Sandbox Code Playgroud)

Java的:

verifyTrue(selenium.isTextPresent("Please correct the errors indicated below."));
verifyTrue(selenium.isTextPresent("You need to add at least one restriction."));
Run Code Online (Sandbox Code Playgroud)

由于测试的两个版本都有正确的文本,为什么Selenium RC版本没有捕获错误?有没有其他人有这个问题?

selenium-rc

3
推荐指数
1
解决办法
3835
查看次数

在Java中,在循环中调用字段访问器是否会在循环的每次迭代中创建新的引用?

说我有一个循环

for (Foo aType : bar.getAList()) {
   if (aType.getBaz().equals(baz)) {

   return aType;
   }
}
Run Code Online (Sandbox Code Playgroud)

bar.getAList()在循环的每次迭代中调用.JVM /编译器是否跟踪这是同一个对象这一事实,或者它是否天真地调用该方法并每次创建对List的引用?

另外,这有什么可担心的(回想一下Jackson,Knuth和Wulf关于优化的格言)吗?

java optimization loops

2
推荐指数
1
解决办法
185
查看次数

为了让程序在未来的架构和操作系统中可以运行,我们可以做些什么?

我提出这个问题因为我已经看到Windows 7 64位能够运行几个32位程序而没有任何问题; 当然,有些运行有问题,有些人拒绝运行.

我不确定为什么有些32位程序可以在64位上运行得很好,但对于我们来说,未来,如果我们将来有128位架构和操作系统发布,那么我们可以在编程方面做些什么呢?我们希望我们的程序能够在不同的位架构中运行吗?或者它不是程序员的工作?

architecture operating-system

0
推荐指数
1
解决办法
147
查看次数