Unable to find/import Runwith Class in org.junit.runner? - java

The below error appears, when I import Runwith, in org.junit.runner...
The attribute value is undefined for the annotation type Runwith
It gave me the suggestion for creating a class in the Junit-Runner package...I don't know, what should I put in that code...
Junit-4.10 is there in libraries and Build Path. I am using it and am not sure whether it is an issue with Junit or Selenium...Any suggestions pls..??
This is the code, I am using and getting the error where the #Runwith is used.(Line #2 and #5)
package package1;
import org.junit.runner.Runwith;
import org.junit.runners.Suite.SuiteClasses;
#Runwith(Suite.Class)
#SuiteClasses({WPHomePage.class, WPRegisterpage.class})
public class BatchJavaFile {
}

#Runwith(Suite.Class) should be #RunWith(Suite.class) (note capitalization)
You probably also need another import
import org.junit.runners.Suite;

Related

package org.ofbiz.clientmanagementservices does not exist

I have this class that I want to import into another class that is outside the previous class folder.
So, I have a GoogleDriveAPI class, which I want to import to DocumentServices class.
on top of my GoogleDriveAPI class there is this line
package org.ofbiz.ClientManagementServices;
but when I try to import it to DocumentServices class with this line below
import org.ofbiz.clientmanagementservices.GoogleDriveAPI;
I get this error below,
error: package org.ofbiz.clientmanagementservices does not exist
[javac17] import org.ofbiz.clientmanagementservices.GoogleDriveAPI;
What might be the problem with my import because I am 100% sure I am doing the right thing?
Java packages are cas sensitive.
You should change the import to :
import org.ofbiz.ClientManagementServices.GoogleDriveAPI;

How can I call test method from jar file to run mock script

I have a deployment of a spring-based corporate project, I did everything and now I just need to run the data seeding script, but I don’t understand how to do it at all
The instructions say:
Run test build io.groobit.utils.mock_data_init.ScenarioTest#scenario1
run mock-init.jar in folder (not used run test in "Itelij idea" To avoid such an error .. see image)
Run build mock-init.jar "java -jar mock-init.jar"
I have run tests many times in intelij idea by clicking the desired method in the test folder, but how to proceed here in the command to call it?
package io.groobit.utils.mock_data_init;
import io.groobit.api.client_api.dto.BusinessClientBasicInfo;
import io.groobit.api.client_api.dto.Payment;
import io.groobit.utils.mock_data_init.*;
import io.groobit.utils.mock_data_init.utils.AuthUtils;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInstance;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.annotation.DirtiesContext;
import java.math.BigDecimal;
import java.time.Instant;
#Slf4j
#Disabled
#SpringBootTest
#DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS)
#TestInstance(TestInstance.Lifecycle.PER_CLASS)
public class ScenarioTest {
#Test
public void scenario1() throws Exception {
//call this it
}
}
Path test: src/test/java/io/company/utils/mock_data_init/ScenarioTest.java
Any idea?

JUnit5 Test Suite doesn't test all classes from a package

I've got a Suite class as follows:
package test.suite;
import org.junit.platform.runner.JUnitPlatform;
import org.junit.platform.suite.api.SelectPackages;
import org.junit.platform.suite.api.SuiteDisplayName;
import org.junit.runner.RunWith;
#RunWith(JUnitPlatform.class)
#SuiteDisplayName("JUnit Platform Suite Demo")
#SelectPackages("test")
public class Suite {
}
And two identical test classes (they differ only by their name at the moment) in the same package called test:
package test;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
public class testClass1 {
#Test
void mainA() {
assertTrue(42==42);
}
When I hit run on 'Suite', only testClass1 will be tested and testClass2 is left out. What am I missing?
The Suite should test classes even recursively from other subpackages in the given package if I'm not mistaken.
--EDIT:
Initially I created two test classes for the same class, and the second test class gets ignored. If I add a third test class in the package, but this time for a separate class, that will get tested as expected.
I was experiencing same issue. I had several files and in my case when i do run as suite some of them would be included and other would not. It was pretty frustrating as I can run them fine individually.
It turned out the one that were not included were those whose name did not end with Test. For example, ClassA wouldn't be added but once i renamed to ClassATest it got added when running as suite package feature.

#RunWith(PowerMockRunner.class) says #RunWith not applicable to method

I have a gradle file
testCompile('junit:junit')
testCompile('org.powermock:powermock-core:1.6.5')
testCompile('org.powermock:powermock-api-mockito:1.6.5')
testCompile('org.powermock:powermock-module-junit4:1.6.5')
And my test file
import org.junit.runner.RunWith;
import org.mockito.Mockito;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
#RunWith(PowerMockRunner.class)
#PrepareForTest(ExperimentService.class)
There seems to be an error with the #RunWith and I have can't seem to find the problem, it just says that '#RunWith' not applicable to method.
What am I doing wrong?
Thanks.
If you see the RunWith.class, target for this annotation is ElementType.Type which means it can only be applied to Class, enum or interface declaration.
#Retention(RetentionPolicy.RUNTIME)
#Target({ElementType.TYPE})
#Inherited
public #interface RunWith {
Class<? extends Runner> value();
}
You cannot apply this annotation over a method.
Oh never mind I found my mistake, it seems that I put the statement within the class.

eclipse: import (classname) cannot be resolved

I am new in using eclipse java using multiple .java files. My eclipse java project consist of one project file two package files, each with one .java class
My 2nd java class import the 1st java class/package, like so
VerifyLogin.java
package VerifyLogin;
import ArgumentCountException;
ArgumentCountException.java
// ...
The problem is VerifyLogin.java is getting an error
Import ArgumentCountException cannot be resolved
Or any reference I have to ArgumentCountException cannot be resolved to a type.
In java if you need to import a class then you need to use the full qualified name for that class, as the following:
import packageName.YourClass;
For Example, if your need to use Scanner class, then you need to import it as:
import java.util.Scanner;
But if the class was withing the same package, you don't need to import it.
When importing your class, it should be done as below:
//Current package name for the VerifyLogin Class (All package names should be lowercase by convention)
package packageforcurrentclass;
//Import statements: import thedependencyclasspackage.thedependencyclassname
import exceptionpackage.ArgumentCountException;
public class VerifyLogin
{
...
}

Categories