我使用Cobertura Maven插件进行我的一个项目.但我对生成的报告有疑问:
线路和分支覆盖范围有什么区别?
我尝试使用“!== null”,但是即使字段返回0或“”,它也会返回PASS。
PHPUnit具有一个非常有用的功能@dataProvider,它可以测试一个方法的多种情况。它还具有另一个很酷的注释- @expectedException确保应用程序Exception在定义的位置正确投掷。
我目前正在针对多种边缘情况测试一种方法,并希望将以下两个功能结合起来(不工作代码):
class TestMyClass
{
/**
* @dataProvider provideDataForFoo
*/
public function testFoo($paramBar, $paramBuz, $expected)
{
$myObject = new MyClass();
$this->assertEquals($expected, $myObject->foo($paramBar, $paramBuz));
}
public function provideDataForFoo()
{
return [
['expected lorem', 'bar lorem', 'buz lorem'],
['expected ipsum', 'bar ipsum', 'buz ipsum'],
['expected exception', 'bar invalid argument', 'buz invalid argument'],
];
}
}
Run Code Online (Sandbox Code Playgroud)
使用时是否可能/如何@expectedException使用@dataProvider?
我使用gradle 3.5构建系统,并在Java项目中进行了多次单元和集成测试.当我在源文件(sourceSets)中进行更改时,gradle的编译避免和增量编译确保只编译相关的源文件,这是一个巨大的节省时间.但是,所有测试都会针对每次更改进行sourceSet.gradle可以识别并仅运行单元测试的相关子集而不是全部吗?如果没有,有没有办法实现这一目标?
Eclipse for Testers版本:Indigo发行版本ID:20110615-0604
我尝试安装TestNG,但出现以下错误。
“无法读取在仓库http://beust.com/eclipse。 http://beust.com/eclipse不是有效的存储库的位置。”
请解决问题
我正在为以下课程编写单元测试
要测试的类:
public class RandomManager {
@Autowired
private ApplicationContext context;
@Autowired
private ClassA objectA;
public void methodToBeTested() {
objectA.methodToBeVerified(context.getBean(Random.class,"Yaswanth","Yaswanth"));
}
}
Run Code Online (Sandbox Code Playgroud)
下面是测试类:
public class RandomManagerTest {
@Mock
private ClassA objectA;
@Mock
private ApplicationContext context;
@InjectMocks
private RandomManager randomManager;
@BeforeTest
public void before() {
MockitoAnnotations.initMocks(this);
doReturn(any(Random.class)).when(context)
.getBean(any(Class.class), any(), any());
}
@Test
public void methodToBeTestedTest() {
Random randomObject = new RandomObject("Yaswanth", "Yaswanth");
randomManager.methodToBeTested();
verify(objectA).methodToBeVerified(randomObject);
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试存根 applicationContext 模拟时,上面的代码在 before 方法中失败。我收到以下错误。
您不能在验证或存根之外使用参数匹配器。参数匹配器的正确使用示例:when(mock.get(anyInt())).thenReturn(null); doThrow(new RuntimeException()).when(mock).someVoidMethod(anyObject()); 验证(模拟)。someMethod(包含(“foo”))
如果最后一个匹配器返回像 any() 这样的对象但存根方法签名需要原始参数,则此消息可能出现在 NullPointerException 之后,在这种情况下,使用原始替代方法。当(mock.get(any())); // 使用不当,会引发 …
在尝试使用selenium启动firefox浏览器时
功能:
System.setProperty("webdriver.gecko.driver", Constants.PROJECT_PATH+Constants.MARIONETTE_FIREFOX);
log.info("Marionette file path: "+Constants.PROJECT_PATH+Constants.MARIONETTE_FIREFOX);
MarionetteDriverManager.getInstance().setup();
Run Code Online (Sandbox Code Playgroud)
在第3行,我收到了上述错误消息 -
"java.lang.NoSuchMethodError: org.apache.commons.io.FileUtils.copyInputStreamToFile(Ljava/io/InputStream;Ljava/io/File;)"
Run Code Online (Sandbox Code Playgroud)
我正在使用的Maven依赖项标签是
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
#Christian Lutz回答后添加了新的dependecy标签
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我该如何重新解决这个问题?
我有一个maven项目(链接),我想在其上运行代码覆盖.
我mvn test -Pcoverage jacoco:prepare-agent jacoco:report在主项目pom文件上运行命令,但不生成报告.相反,我得到一个警告说
[INFO] --- jacoco-maven-plugin:0.7.7.201606060606:report (post-test) @ pulsar-discovery-service ---
[INFO] Skipping JaCoCo execution due to missing execution data file.
[INFO]
[INFO] --- jacoco-maven-plugin:0.7.7.201606060606:prepare-agent (default-cli) @ pulsar-discovery-service ---
[INFO] argLine set to -javaagent:/home/jai1/.m2/repository/org/jacoco/org.jacoco.agent/0.7.7.201606060606/org.jacoco.agent-0.7.7.201606060606-runtime.jar=destfile=/home/jai1/pulsar/pulsar-discovery-service/target/jacoco.exec
[INFO]
[INFO] --- jacoco-maven-plugin:0.7.7.201606060606:report (default-cli) @ pulsar-discovery-service ---
[INFO] Skipping JaCoCo execution due to missing execution data file.
Run Code Online (Sandbox Code Playgroud)
有人可以建议如何使用此pom文件生成代码覆盖率报告.我正在使用apache-maven-3.3.9和testNG.
我有一个带有页面对象模型的测试自动化框架。我所有的测试都位于同一个包中的不同类中。
在 testng.xml 我有
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Smoke Test">
<test name="SmokeTest">
<classes>
<class name="name.test1"/>
<class name="name.test2"/>
<class name="name.test3"/>
</classes>
</test>
</suite>
Run Code Online (Sandbox Code Playgroud)
问题是在运行 TestNG.xml 之后,如果第一个测试失败,它将停止测试执行。但我想继续执行所有测试用例。
我在我的项目中使用 Jenkins,如果其中一项测试失败,它会立即停止执行。
测试示例
public class LoginTestTest {
public AndroidDriver<AndroidElement> driver;
public AOWebClient aoWebClient;
AOWebClient aoWeb;
public LoginTestTest(AndroidDriver<AndroidElement> driver, AOWebClient aoWeb){
this.driver = driver;
this.aoWeb = aoWeb;
PageFactory.initElements(new AppiumFieldDecorator(driver), this);
}
public LoginTestTest() {
}
SoftAssert softAssert = new SoftAssert();
@BeforeClass
public void setUp() throws Exception {
driver = DesiredCapabilitiesSetup.startAppiumServer();
aoWebClient = DesiredCapabilitiesSetup.getAOWeb();
LogIn …Run Code Online (Sandbox Code Playgroud) 我收到异常
FAILED CONFIGURATION: @BeforeSuite arquillianBeforeSuite
java.lang.NoSuchMethodError: org.jboss.remoting3.Endpoint.builder()Lorg/jboss/remoting3/EndpointBuilder;
at org.jboss.as.controller.client.impl.RemotingModelControllerClient.getOrCreateChannel(RemotingModelControllerClient.java:117)
at org.jboss.as.controller.client.impl.RemotingModelControllerClient$1.getChannel(RemotingModelControllerClient.java:59)
at org.jboss.as.protocol.mgmt.ManagementChannelHandler.executeRequest(ManagementChannelHandler.java:147)
at org.jboss.as.protocol.mgmt.ManagementChannelHandler.executeRequest(ManagementChannelHandler.java:122)
Run Code Online (Sandbox Code Playgroud)
使用 TestNG 和 wildfly11 在 Eclipse Oxygen 中运行 Arquillian 测试。我的Maven配置如下:
<dependency>
<groupId>org.jboss.arquillian.testng</groupId>
<artifactId>arquillian-testng-container</artifactId>
<version>1.1.13.Final</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.11</version>
</dependency>
<dependency>
<groupId>org.wildfly.arquillian</groupId>
<artifactId>wildfly-arquillian-container-managed</artifactId>
<version>2.0.1.Final</version>
<scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)