⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 buildfiletest.java

📁 ant源代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
     * @pre configureProject has been called     * @param  targetName  target to run     */    public void executeTarget(String targetName) {        PrintStream sysOut = System.out;        PrintStream sysErr = System.err;        try {            sysOut.flush();            sysErr.flush();            outBuffer = new StringBuffer();            PrintStream out = new PrintStream(new AntOutputStream(outBuffer));            System.setOut(out);            errBuffer = new StringBuffer();            PrintStream err = new PrintStream(new AntOutputStream(errBuffer));            System.setErr(err);            logBuffer = new StringBuffer();            fullLogBuffer = new StringBuffer();            buildException = null;            project.executeTarget(targetName);        } finally {            System.setOut(sysOut);            System.setErr(sysErr);        }    }    /**     * Get the project which has been configured for a test.     *     * @return the Project instance for this test.     */    public Project getProject() {        return project;    }    /**     * Gets the directory of the project.     *     * @return the base dir of the project     */    public File getProjectDir() {        return project.getBaseDir();    }    /**     * Runs a target, wait for a build exception.     *     * @param  target target to run     * @param  cause  information string to reader of report     * @param  msg    the message value of the build exception we are waiting     *         for set to null for any build exception to be valid     */    public void expectSpecificBuildException(String target, String cause, String msg) {        try {            executeTarget(target);        } catch (org.apache.tools.ant.BuildException ex) {            buildException = ex;            if ((null != msg) && (!ex.getMessage().equals(msg))) {                fail("Should throw BuildException because '" + cause                        + "' with message '" + msg                        + "' (actual message '" + ex.getMessage() + "' instead)");            }            return;        }        fail("Should throw BuildException because: " + cause);    }    /**     * run a target, expect an exception string     * containing the substring we look for (case sensitive match)     *     * @param  target target to run     * @param  cause  information string to reader of report     * @param  contains  substring of the build exception to look for     */    public void expectBuildExceptionContaining(String target, String cause, String contains) {        try {            executeTarget(target);        } catch (org.apache.tools.ant.BuildException ex) {            buildException = ex;            if ((null != contains) && (ex.getMessage().indexOf(contains) == -1)) {                fail("Should throw BuildException because '" + cause + "' with message containing '" + contains + "' (actual message '" + ex.getMessage() + "' instead)");            }            return;        }        fail("Should throw BuildException because: " + cause);    }    /**     * call a target, verify property is as expected     *     * @param target build file target     * @param property property name     * @param value expected value     */    public void expectPropertySet(String target, String property, String value) {        executeTarget(target);        assertPropertyEquals(property, value);    }    /**     * assert that a property equals a value; comparison is case sensitive.     *     * @param property property name     * @param value expected value     */    public void assertPropertyEquals(String property, String value) {        String result = project.getProperty(property);        assertEquals("property " + property,value,result);    }    /**     * assert that a property equals "true".     *     * @param property property name     */    public  void assertPropertySet(String property) {        assertPropertyEquals(property, "true");    }    /**     * assert that a property is null.     *     * @param property property name     */    public  void assertPropertyUnset(String property) {        assertPropertyEquals(property, null);    }    /**     * call a target, verify named property is "true".     *     * @param target build file target     * @param property property name     */    public  void expectPropertySet(String target, String property) {        expectPropertySet(target, property, "true");    }    /**     * Call a target, verify property is null.     *     * @param target build file target     * @param property property name     */    public  void expectPropertyUnset(String target, String property) {        expectPropertySet(target, property, null);    }    /**     * Retrieve a resource from the caller classloader to avoid     * assuming a vm working directory. The resource path must be     * relative to the package name or absolute from the root path.     *     * @param resource the resource to retrieve its url.     * @throws junit.framework.AssertionFailedError if the resource is not found.     */    public  URL getResource(String resource){        URL url = getClass().getResource(resource);        assertNotNull("Could not find resource :" + resource, url);        return url;    }    /**     * an output stream which saves stuff to our buffer.     */    private static class AntOutputStream extends java.io.OutputStream {        private StringBuffer buffer;        public AntOutputStream( StringBuffer buffer ) {            this.buffer = buffer;        }        public void write(int b) {            buffer.append((char)b);        }    }    /**     * Our own personal build listener.     */    private class AntTestListener implements BuildListener {        private int logLevel;        /**         * Constructs a test listener which will ignore log events         * above the given level.         */        public AntTestListener(int logLevel) {            this.logLevel = logLevel;        }        /**         * Fired before any targets are started.         */        public void buildStarted(BuildEvent event) {        }        /**         * Fired after the last target has finished. This event         * will still be thrown if an error occurred during the build.         *         * @see BuildEvent#getException()         */        public void buildFinished(BuildEvent event) {        }        /**         * Fired when a target is started.         *         * @see BuildEvent#getTarget()         */        public void targetStarted(BuildEvent event) {            //System.out.println("targetStarted " + event.getTarget().getName());        }        /**         * Fired when a target has finished. This event will         * still be thrown if an error occurred during the build.         *         * @see BuildEvent#getException()         */        public void targetFinished(BuildEvent event) {            //System.out.println("targetFinished " + event.getTarget().getName());        }        /**         * Fired when a task is started.         *         * @see BuildEvent#getTask()         */        public void taskStarted(BuildEvent event) {            //System.out.println("taskStarted " + event.getTask().getTaskName());        }        /**         * Fired when a task has finished. This event will still         * be throw if an error occurred during the build.         *         * @see BuildEvent#getException()         */        public void taskFinished(BuildEvent event) {            //System.out.println("taskFinished " + event.getTask().getTaskName());        }        /**         * Fired whenever a message is logged.         *         * @see BuildEvent#getMessage()         * @see BuildEvent#getPriority()         */        public void messageLogged(BuildEvent event) {            if (event.getPriority() > logLevel) {                // ignore event                return;            }            if (event.getPriority() == Project.MSG_INFO ||                event.getPriority() == Project.MSG_WARN ||                event.getPriority() == Project.MSG_ERR) {                logBuffer.append(event.getMessage());            }            fullLogBuffer.append(event.getMessage());        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -