簡體   English   中英

如何在非Java項目上運行junit測試

[英]How to run junit tests on a non java project

我有一個項目文件夾,但它不是Java項目。 這是一個行家項目。 我已經編寫了一個junit測試,它在eclipse IDE中運行時可以完美運行,但是當我運行maven命令mvn install ,它似乎跳過了我的junit測試。 我已經將測試文件包含在src/test/java/ (我的測試名稱是AppTest.java ),而主要的.java文件(具有main方法)位於src/main/java/ 我注意到我當前正在處理的項目是maven項目,而不是maven java項目。 我包括了當前文件夾結構的屏幕:

文件夾結構

Maven測試輸出 <-不應構建,因為我有一個故意的測試應該失敗

這就是POM。 我已經刪除/注釋了一些敏感的部分,因此pom文件在語法上可能是錯誤的,但是我使用的主要插件在那里。 tap4jjunitsurefire

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <artifactId>integration-api-parent</artifactId>
        <groupId>uk.gov.dwp</groupId>
        <version>1.0.2</version>
    </parent>
    <artifactId>aa</artifactId>
    <version>1.0.6</version>
    <packaging>pom</packaging>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <finalName>aa</finalName>
        <plugins>
            <!-- plugin>
                <groupId>com.github.fracpete</groupId>
                <artifactId>latex-maven-plugin</artifactId>
                <configuration>
                    <forceBuild>true</forceBuild>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.github.fracpete</groupId>
                <artifactId>latex-maven-plugin</artifactId>
                <configuration>
                    <forceBuild>true</forceBuild>
                </configuration>
            </plugin-->
            <plugin>
                <!-- Plug-in utilised for the execution of the JMeter Integration Tests -->
                <!-- These tests are executed against the nominated integration server where as -->
                <!-- instance of AA exists -->
                <groupId>com.lazerycode.jmeter</groupId>
                <artifactId>jmeter-maven-plugin</artifactId>
                <version>1.9.0</version>
                <executions>
                    <execution>
                        <id>jmeter-tests</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>jmeter</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <ignoreResultErrors>false</ignoreResultErrors>
                    <suppressJMeterOutput>false</suppressJMeterOutput>
                    <overrideRootLogLevel>INFO</overrideRootLogLevel>
                </configuration>
            </plugin>
            <plugin>
                <!-- Step to copy the latest plug-ins that form this build to the integration server -->
                <!-- This is done using the SCP command via the ANT plug-in thus allowing it to execute on all platforms -->
                <artifactId>maven-antrun-plugin</artifactId>
                <version>1.8</version>

                    <dependency>
                        <groupId>ant</groupId>
                        <artifactId>ant-jsch</artifactId>
                        <version>1.6.5</version>
                    </dependency>
                    <dependency>
                        <groupId>com.jcraft</groupId>
                        <artifactId>jsch</artifactId>
                        <version>0.1.42</version>
                    </dependency>
                    <!-- https://mvnrepository.com/artifact/org.tap4j/tap4j -->
                    <dependency>
                        <groupId>org.tap4j</groupId>
                        <artifactId>tap4j</artifactId>
                        <version>4.2.1</version>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.19.1</version>
            </plugin>
            <!-- plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <descriptors>
                        <descriptor>src/main/assembly/cassandra-assembly.xml</descriptor>
                        <descriptor>src/main/assembly/devenv-assembly.xml</descriptor>
                        <descriptor>src/main/assembly/main-assembly.xml</descriptor>
                    </descriptors>
                </configuration>
            </plugin-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.18.1</version>
            </plugin>
            <!-- plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>templating-maven-plugin</artifactId>
                <configuration>
                    <skipPoms>false</skipPoms>
                    <sourceDirectory>${project.basedir}/src/main/latex-templates</sourceDirectory>
                    <outputDirectory>${project.build.directory}/latex</outputDirectory>
                </configuration>
            </plugin-->
        </plugins>
    </build>
</project>

AppTest:

    package AccessGateway;

import static org.junit.Assert.*;

import java.io.File;

import org.junit.Test;
import org.tap4j.consumer.TapConsumer;
import org.tap4j.consumer.TapConsumerFactory;
import org.tap4j.model.TestSet;

public class AppTest {

     Practise prac;
     final String DIRECTORY = "C:\\Users\\Hello\\Desktop\\";

     @Test
        public void testHeaderProcessor() {
            prac = new Practise();
            assertFalse(prac.runTest(new File(DIRECTORY+"TAPHeaderProcessor.txt")));
        }

     @Test
        public void testHeaderPortForward() {
            prac = new Practise();
            assertFalse(prac.runTest(new File(DIRECTORY+"TAPHeaderPortForward.txt")));
        }

     @Test
        public void catunittest() {
            prac = new Practise();
            assertFalse(prac.runTest(new File(DIRECTORY+"catunittest.txt")));
        }

     @Test
        public void catunitcrowstest() {
            prac = new Practise();
            assertFalse(prac.runTest(new File(DIRECTORY+"catcrowd.txt")));
        }

     @Test
        public void testCrowd() {
            prac = new Practise();
            assertFalse(
                    prac.runTest(new File(DIRECTORY+"TAPCrowd.txt")));
        }


    @Test
    public void testADFS() {
        prac = new Practise();
        assertFalse(
                prac.runTest(new File(DIRECTORY+"TAPADFSformat.txt")));
    }



}

問題是您的項目packagingpom

您無法在此類項目上執行Surefire。

嘗試添加surefire插件。 當我在應用程序中進行測試時,我總是將其包括在內(適用於junit和testng)。 根據您的日志,我可以看到您沒有聲明它。

<plugins>
[...]
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.19.1</version>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM