如何在Java中尝试查找给定类(或给定接口的所有实现者)的所有子类?截至目前,我有一种方法可以做到这一点,但我觉得效率很低(至少可以说).方法是:
在Eclipse中,有一个很好的功能叫做类型层次结构,可以非常有效地显示它.如何以编程方式进行操作?
我已经设法找到如何在jUnit 4中创建一个TestSuite,但我真的很想念在TestSetup中包装套件的v3的可能性.
关于如何在jUnit 4中为一组测试用例执行一些@ BeforeClass/@ AfterClass设置的任何想法?
即
@RunWith(Suite.class)
@Suite.SuiteClasses({Test1.class, Test2.class})
public class MyTestSuite {
@BeforeClass public static void setUpClass() {
// Common initialization done once for Test1 + Test2
}
@AfterClass public static void tearDownClass() {
// Common cleanup for all tests
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,上面的代码片段不起作用.@BeforeClass仅适用于每个测试类.
我想在(restful)webservice上做一些功能测试.testsuite包含一堆测试用例,每个测试用例在webservice上执行几个HTTP请求.
当然,Web服务必须运行或测试失败.:-)
启动Web服务需要几分钟(它会提升一些重量级数据),因此我希望尽可能少地启动它(至少所有只有来自服务的GET资源可以共享一个的测试用例).
那么在测试运行之前,有没有办法在测试套件中设置炸弹,就像测试用例的@BeforeClass方法一样?
我有四个junit情况,我需要传递一个参数,对于所有这些参数都是相同的,但是这个参数是在测试套件中以动态方式创建的.如何将测试套件中的参数传递给测试用例中的所有测试?
我是测试自动化领域的新手,请原谅我,如果这是一个愚蠢的问题,但谷歌这次失败了.或者至少我读过的任何内容都让我更加困惑.
我在Eclipse中使用JUnit 4和Selenium Webdriver.我有几个测试需要作为套件运行,也需要单独运行.目前,这些测试在自行运行时运行良好.在测试开始时,向测试者/用户呈现输入框,询问他们想要测试的服务器(这是一个字符串变量,它成为URL的一部分)以及他们希望测试的浏览器.在套件中运行测试时,用户在每次测试开始时都会被问到这一点,因为很明显这会被编码到他们的每个@Before方法中.
我如何接受这些值一次,并将它们传递给每个测试方法?
因此,如果server ="server1"和browser ="firefox",那么firefox是我想要selenium使用的浏览器,我希望它打开的URL是http://server1.blah.com/,用于以下所有测试方法.我一直在使用单独的@Before方法的原因是因为每个测试方法所需的URL略有不同.即每种方法测试不同的页面,例如server1.blah.com/something和server1.blah.com/somethingElse
测试运行正常,我只是不想继续输入值,因为测试方法的数量最终会很大.
如果在testNG中有更简单的方法,我也可以将我的测试转换为testNG.我认为@BeforeSuite注释可能有用,但现在我不确定.
任何建议和批评(建设性的)都非常感谢
我想在JUnit中为测试运行创建自定义html报告.我遇到的问题是在完成所有测试后释放资源并关闭标签.
我保持一个FileChannel打开以便写入报告.由于每个测试应该是带有行的表,并且有数百个,我不想为每个测试打开和关闭通道.这里出现的问题是测试组织 - 我有嵌套套件,所以testRunFinished不是一个选项(指单套件,不是所有测试,我看到了这个问题).TestWatcher也不会帮助我,因为它仅指单一测试.
使用的工具:maven 3.0.5,ff webdriver,junit 4.11.
我正在考虑两个选项:1)每次测试运行时打开和关闭通道2)覆盖finalize()使其关闭通道
他们似乎都不漂亮......我搜索了很多页面,但似乎没有人遇到过同样的问题.
任何更漂亮的解决方案?
我有一些代码需要在我的测试类之前和之后运行.无论在中间运行多少个测试类,它必须为整个集合运行一次且仅运行一次.
当我在套件中运行时,它在整个套件的开始和结束时调用,这是按预期工作的,但是,我希望能够运行单个测试类.在这种情况下,测试类需要检测它是否单独运行并启动前/后测试代码.
这可能吗?
在我使用Maven运行一堆Selenium(jUnit4)测试之后,我想做一个数据库清理(删除他们插入的东西等).这是在Tapestry/Spring/Hibernate上运行的旧项目和遗留数据库.我想用一个带@After注释的方法进行清理- 但注入DAO的/ Managers/SessionFactory不起作用.
测试是这样的:我mvn jetty:run-war在一个控制台中运行()应用程序,并在另一个控制台(mvn test)中启动测试- 它访问localhost:8080上的应用程序.
我是JUnit的初学者.我想创建一个测试来获取所有products并获得products id.这是我的Java代码:
@Path("/produits")
@Produces("application/json")
public class ProduitResource {
public ProduitResource() {
}
@GET
public List<Produit> getProduits() {
System.out.println("getProduits");
return ReadXMLFile.getProduits();
}
@GET
@Path("numProduit-{id}")
public Produit getProduit(@PathParam("id") String numProduit) {
System.out.println("getProduit");
for (Produit current : ReadXMLFile.getProduits()) {
if (numProduit.equals(current.getNumProduit())) {
return current;
}
}
return null;
}
@GET
@Path("/search")
public List<Produit> searchProduitsByCriteria(@QueryParam("departure") String departure, @QueryParam("arrival") String arrival, @QueryParam("arrivalhour") String arrivalHour) {
System.out.println("searchProduitsByCriteria");
return ReadXMLFile.getProduits().subList(0, 2);
}
}
Run Code Online (Sandbox Code Playgroud) java ×7
junit ×7
testing ×3
junit4 ×2
selenium ×2
test-suite ×2
class ×1
eclipse ×1
hibernate ×1
installation ×1
interface ×1
maven ×1
rest ×1
spring ×1
subclass ×1
surefire ×1
unit-testing ×1
web-services ×1