Проблема в том, что когда вы запускаете класс Test и вызывается @AfterMethod
, он пытается выйти из драйвера, принадлежащего верхнему классу, но не из классов, которые создаются в методах. Вот небольшой пример для лучшего понимания:
Класс теста JUnit:
import org.junit.Test;
import org.junit.After;
public class intTestClass extends Methods{
@Test
public void test1() throws InterruptedException {
intTestClass object1;
object1 = new intTestClass();
object1.setInt();
}
@After
public void tearDown() {
System.out.println("testInt is: "+ testInt);
}
}
И класс Methods:
public class Methods {
public int testInt = 0;
public void setInt() {
testInt = 1;
}
}
Здесь, когда вы запускаете тест JUnit вы ожидаете, что значение testInt
будет напечатано как 1. Однако метод с аннотацией @After(@AfterMethod for testng)
проверяет значение переменной testInt
, которая относится к верхнему уровню intTestClass, а не чем intTestClass , который создается внутри метода test1()
.
Таким образом, мы видим вывод:
testInt is: 0
Если мы применим это к вашему сценарию, вам нужно будет переместить ваш метод launchBrowser()
в ваш тестовый класс и вызвать метод с @BeforeClass
аннотация.
Проверьте страницу справочника RTC для получения дополнительной информации но если Вы зарегистрированы как корень, что-то вроде этого:
#include <linux/rtc.h>
#include <sys/ioctl.h>
struct rtc_time {
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday; /* unused */
int tm_yday; /* unused */
int tm_isdst;/* unused */
};
int fd;
struct rtc_time rt;
/* set your values here */
fd = open("/dev/rtc", O_RDONLY);
ioctl(fd, RTC_SET_TIME, &rt);
close(fd);
После вызова stime (), сделайте это:
system("/sbin/hwclock --systohc");
Посмотрите hwclock (8) страница справочника для получения дополнительной информации.
Я также хотел бы указать, что аппаратные часы только с точностью до точки (я видел системы, которые освободят/получат несколько секунд в день).
Вы полагали, что установка демона сетевого времени синхронизирует Ваши часы против сервера времени?
По общему признанию этой синхронизации не происходит, пока демон не запускает настолько остающийся Ваши аппаратные часы в синхронизации, также помогает между питанием и точкой синхронизации демона времени против сервера времени.