blob: 3a62b220a00956084691686a5d1087836b76587c [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>CTest &mdash; CMake 3.23.1 Documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../_static/cmake.css" />
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<link rel="shortcut icon" href="../_static/cmake-favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="CTestCoverageCollectGCOV" href="CTestCoverageCollectGCOV.html" />
<link rel="prev" title="CSharpUtilities" href="CSharpUtilities.html" />
</head><body>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="CTestCoverageCollectGCOV.html" title="CTestCoverageCollectGCOV"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="CSharpUtilities.html" title="CSharpUtilities"
accesskey="P">previous</a> |</li>
<li>
<img src="../_static/cmake-logo-16.png" alt=""
style="vertical-align: middle; margin-top: -2px" />
</li>
<li>
<a href="https://cmake.org/">CMake</a> &#187;
</li>
<li>
<a href="../index.html">3.23.1 Documentation</a> &#187;
</li>
<li class="nav-item nav-item-1"><a href="../manual/cmake-modules.7.html" accesskey="U">cmake-modules(7)</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">CTest</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="ctest">
<span id="module:CTest"></span><h1>CTest<a class="headerlink" href="#ctest" title="Permalink to this headline">ΒΆ</a></h1>
<p>Configure a project for testing with CTest/CDash</p>
<p>Include this module in the top CMakeLists.txt file of a project to
enable testing with CTest and dashboard submissions to CDash:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>project(MyProject)
...
include(CTest)
</pre></div>
</div>
<p>The module automatically creates a <code class="docutils literal notranslate"><span class="pre">BUILD_TESTING</span></code> option that selects
whether to enable testing support (<code class="docutils literal notranslate"><span class="pre">ON</span></code> by default). After including
the module, use code like:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>if(BUILD_TESTING)
# ... CMake code to create tests ...
endif()
</pre></div>
</div>
<p>to creating tests when testing is enabled.</p>
<p>To enable submissions to a CDash server, create a <code class="docutils literal notranslate"><span class="pre">CTestConfig.cmake</span></code>
file at the top of the project with content such as:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>set(CTEST_NIGHTLY_START_TIME &quot;01:00:00 UTC&quot;)
set(CTEST_SUBMIT_URL &quot;http://my.cdash.org/submit.php?project=MyProject&quot;)
</pre></div>
</div>
<p>(the CDash server can provide the file to a project administrator who
configures <code class="docutils literal notranslate"><span class="pre">MyProject</span></code>). Settings in the config file are shared by
both this <code class="docutils literal notranslate"><span class="pre">CTest</span></code> module and the <span class="target" id="index-0-manual:ctest(1)"></span><a class="reference internal" href="../manual/ctest.1.html#manual:ctest(1)" title="ctest(1)"><code class="xref cmake cmake-manual docutils literal notranslate"><span class="pre">ctest(1)</span></code></a> command-line
<a class="reference internal" href="../manual/ctest.1.html#dashboard-client"><span class="std std-ref">Dashboard Client</span></a> mode (<code class="docutils literal notranslate"><span class="pre">ctest</span> <span class="pre">-S</span></code>).</p>
<p>While building a project for submission to CDash, CTest scans the
build output for errors and warnings and reports them with surrounding
context from the build log. This generic approach works for all build
tools, but does not give details about the command invocation that
produced a given problem. One may get more detailed reports by setting
the <span class="target" id="index-0-variable:CTEST_USE_LAUNCHERS"></span><a class="reference internal" href="../variable/CTEST_USE_LAUNCHERS.html#variable:CTEST_USE_LAUNCHERS" title="CTEST_USE_LAUNCHERS"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CTEST_USE_LAUNCHERS</span></code></a> variable:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>set(CTEST_USE_LAUNCHERS 1)
</pre></div>
</div>
<p>in the <code class="docutils literal notranslate"><span class="pre">CTestConfig.cmake</span></code> file.</p>
</div>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h4>Previous topic</h4>
<p class="topless"><a href="CSharpUtilities.html"
title="previous chapter">CSharpUtilities</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="CTestCoverageCollectGCOV.html"
title="next chapter">CTestCoverageCollectGCOV</a></p>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/module/CTest.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="CTestCoverageCollectGCOV.html" title="CTestCoverageCollectGCOV"
>next</a> |</li>
<li class="right" >
<a href="CSharpUtilities.html" title="CSharpUtilities"
>previous</a> |</li>
<li>
<img src="../_static/cmake-logo-16.png" alt=""
style="vertical-align: middle; margin-top: -2px" />
</li>
<li>
<a href="https://cmake.org/">CMake</a> &#187;
</li>
<li>
<a href="../index.html">3.23.1 Documentation</a> &#187;
</li>
<li class="nav-item nav-item-1"><a href="../manual/cmake-modules.7.html" >cmake-modules(7)</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">CTest</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2000-2022 Kitware, Inc. and Contributors.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 4.1.2.
</div>
</body>
</html>