You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VSTS中为Maven+JUnit+Selenium的Java项目构建定义并发布测试结果

Integrating Your Selenium/JUnit/Maven Tests into VSTS

Got it, let's walk through how to get your working local Selenium/JUnit/Maven test suite up and running in VSTS smoothly—since you already have the foundation solid, this should be straightforward!

Step 1: Push Your Code to VSTS Git Repository

First, you need to get your local code into a VSTS Git repo:

  • Create a new Git repository in your VSTS project (go to Repos > Files > New Repository if you don't have one).
  • Grab the repo's clone URL, then run these commands locally to push your code:
    git init
    git add .
    git commit -m "Initial commit with test suite"
    git remote add origin <VSTS-repo-clone-url>
    git push -u origin main
    

Step 2: Create a Build Pipeline

Next, set up a build pipeline to run your tests:

  • Go to Pipelines > Builds > New Pipeline.
  • Select Azure Repos Git as your source, pick your repo, then choose the Maven template (this pre-configures basic Maven steps for you).

Step 3: Configure the Pipeline Tasks

Now tweak the pipeline to run your tests properly (especially handling headless browsers, since VSTS agents run without a UI):

Update Your Selenium Code for Headless Mode

VSTS hosted agents don't have a visible browser window, so you need to configure your Selenium driver to run headless. For Chrome, modify your driver setup like this:

ChromeOptions options = new ChromeOptions();
options.addArguments("--headless=new"); // Modern headless mode
options.addArguments("--disable-gpu");
options.addArguments("--window-size=1920,1080"); // Ensure consistent viewport
WebDriver driver = new ChromeDriver(options);

This lets Chrome run in the background without a UI, which is required for VSTS agents.

Configure the Maven Task

  • In your pipeline, find the Maven task. Set the Goals field to test—this tells Maven to run your JUnit tests via the Surefire plugin.
  • If you need to specify a specific POM file (like if it's in a subfolder), set the POM file path accordingly.

Add a Test Results Publishing Task

To see test outcomes in VSTS:

  • Click + to add a new task, search for Publish Test Results.
  • Set Test result format to JUnit.
  • Set Test results files to **/surefire-reports/*.xml (this is where Maven Surefire saves JUnit test reports by default).
  • Check Merge test results if you have multiple test classes.

Step 4: Configure the Agent Pool

  • If using Microsoft-hosted agents: These come pre-installed with Chrome, Firefox, and their respective WebDrivers (just make sure your code uses a driver version compatible with the browser on the agent—you can use WebDriverManager to auto-manage driver versions if you want).
  • If using Self-hosted agents: You'll need to install the browser (Chrome/Firefox) and matching WebDriver on the agent machine, and ensure Maven is installed.

Step 5: Run the Pipeline and Verify

  • Save your pipeline, then click Run pipeline.
  • Once the build finishes, go to the Tests tab to see which tests passed/failed. You can also view logs if something goes wrong (check the Maven task logs for test errors).

Pro Tips

  • Use WebDriverManager in your POM to auto-download the correct WebDriver version, so you don't have to manually manage driver binaries across agents:
    <dependency>
        <groupId>io.github.bonigarcia</groupId>
        <artifactId>webdrivermanager</artifactId>
        <version>5.6.3</version>
        <scope>test</scope>
    </dependency>
    
    Then in your code, replace the driver setup with:
    WebDriverManager.chromedriver().setup();
    ChromeOptions options = new ChromeOptions();
    options.addArguments("--headless=new");
    WebDriver driver = new ChromeDriver(options);
    
  • If your tests rely on environment-specific values (like test URLs), set them as Pipeline Variables in VSTS, then read them in your code with System.getenv("VARIABLE_NAME").

Once you have this set up, you can even configure triggers to run the pipeline on every code commit or on a schedule to keep your tests automated. Let me know if you run into specific issues with any step!

内容的提问来源于stack exchange,提问作者Victor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:50:05