Wenn Sie ein Websystem freigeben, führt das Projekt, an dem ich arbeite, Folgendes aus:
Es gibt 10 bis 20 Elemente, um zu überprüfen, ob die Release-Einstellungen vorgenommen wurden. Zum Beispiel die folgenden Elemente.
Die Veröffentlichungshäufigkeit beträgt alle drei Monate, daher ist die Bestätigung selbst nicht so belastend. Da durch visuelle Bestätigung die Gefahr von Leckagen besteht, habe ich auch ein Werkzeug zum Lernen entwickelt. Nun, es ist möglich, dass das Tool falsch ist. .. ..
Ich habe JUnit verwendet, um zu bestätigen, dass es richtig eingestellt wurde.
Laden Sie die Eigenschaftendatei mit der Klasse java.util.Properties
/**Absoluter Pfad der zu lesenden Datei*/
private static String filePath = Constants.PROJECT_PATH + "sources/system.properties";
/**Objekt der Eigenschaftendatei*/
private static Properties prop = null;
@Rule
public TestName testname = new TestName();
@BeforeClass
public static void setUpBeforeClass() throws Exception {
prop = new Properties();
prop.load(new FileInputStream(filePath));
}
@Test
public void Verbindungsziel des FTP-Servers bestätigen() throws Exception{
String key = "ftp.host"; //Schlüsseldatei
String actual = prop.getProperty(key); //
String expected = "127.0.0.1"; //Erwartete Ergebnisse
String name = relativeFilePath + ": " + key;
log.info(name + " = " + actual); //Ausgabewert zum Protokollieren
assertThat(name, actual, CoreMatchers.is(expected));
}
//Erstellen Sie so viele Testmethoden, wie Sie sehen möchten
Verwenden Sie org.jsoup.Jsoup, um die JSP / HTML-Datei zu laden. Es kann auch dann gelesen werden, wenn ein benutzerdefiniertes JSP-Tag vorhanden ist.
index.jsp
<div>
<span id="version">1.2.3</span>
</div>
/**Absoluter Pfad der zu lesenden Datei*/
private static String filePath = Constants.PROJECT_PATH + "webapps/index.jsp";
/**Dokumentobjekt*/
private static Document doc = null;
@Rule
public TestName testname = new TestName();
@BeforeClass
public static void setUpBeforeClass() throws Exception {
doc = Jsoup.parse(new File(filePath), "UTF-8");
}
@Test
public void Version überprüfen() throws Exception{
String key = "#version";
Element cell = doc.select(key).get(0);
String actual = cell.text();
String expected = "1.2.3";
String name = relativeFilePath + " : " + key;
log.info(name + " = " + actual);
assertThat(name, actual, CoreMatchers.is(expected));
}
Verwenden Sie "org.dom4j.io.SAXReader" in dom4j.jar, um die XML-Datei zu lesen.
Der folgende Prozess bestätigt die in web.xml beschriebene Version.
web.xml
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<context-param>
<param-name>version</param-name>
<param-value>1.2.3</param-value>
</context-param>
</web-apps>
/**Absoluter Pfad der zu lesenden Datei*/
private static String filePath = Constants.PROJECT_PATH + "webapps/WEB-INF/web.xml";
/**XML-Datei Dokumentobjekt*/
private static Document doc = null;
@Rule
public TestName testname = new TestName();
@BeforeClass
public static void setUpBeforeClass() throws Exception {
SAXReader reader = new SAXReader();
//Einstellung, externe DTD (Web) nicht zu lesen.Obwohl dtd in XML nicht referenziert wird, ist es so eingestellt, dass es von anderen XML-Dateien gelesen werden kann.)
//http://qiita.com/yoshi389111/items/3d0da72b1f2ccd947052
reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
doc = reader.read(filePath);
}
@Test
Bestätigung der öffentlichen ungültigen Version() throws Exception {
//<param-value>XPath, um den Wert des Tags zu erhalten
String key = "//p:context-param/p:param-name[text()='version']/following-sibling::p:param-value";
//Namensraum["p"]Setzen Sie den Standard-Namespace auf
BaseXPath xpath = new Dom4jXPath(key);
xpath.addNamespace("p", ""http://java.sun.com/xml/ns/j2ee");
String actual = xpath.stringValueOf(doc);
String expected = "1.2.3";
String name = relativeFilePath + " : " + key;
log.info(name + " = " + actual);
assertThat(name, actual, CoreMatchers.is(expected));
}
Verwenden Sie javax.script.ScriptEngine
.
Sie können den Eigenschaftswert eines Objekts nicht mit der Methode "get" abrufen. Sobald eine js-Variable für jede "eval" -Methode zugewiesen wurde, ermitteln Sie den Wert dieser Variablen mit der "get" -Methode.
sample.js
var C = {version: "1.2.3"};
engine.eval(new FileReader("sample.js"));
Object a = engine.get("C.version"); //→null
engine.eval("tmp = C.version");
Object b = engine.get("tmp"); //→"1.2.3"
Wenn Sie eine externe Bibliothek wie jQuery verwenden, tritt ein ReferenceError auf, wie unten gezeigt. Für die Freigabe der JavaScript-Datei ist es möglicherweise besser, keine externe Bibliothek zu verwenden. (Ich wusste nicht, wie ich den ReferenceError beheben sollte)
javax.script.ScriptException: ReferenceError: "$" is not defined in <eval> ...(Kürzung)
Recommended Posts