<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="386342" data-post-id="386342">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="mudasobwa" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mudasobwa/120/5298_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  mudasobwa
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Cure</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="lud" data-post="10" data-topic="74719">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/lud/48/14382_2.png" class="avatar"> lud:</div>
<blockquote>
<p>Then about the results I’m not so sure how to interpret them.</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">Survived Mutations:
--------------------------------------------------
lib/jsv/vocabulary/v7/applicator.ex:86
  ReturnValue: replace return value of validate_keyword with nil
</code></pre>
</blockquote>
</aside>
<p>BTW, this report means:</p>
<ul>
<li>mutation kind: <code>ReturnValue</code></li>
<li>mutation itself: we returned <code>nil</code> instead of what has been returned</li>
<li>failure: test has still had passed</li>
</ul> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="386342" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/muex-the-library-for-mutation-testing/74719/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-386342" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="386342"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #11"></div>
  </section>
</div>
    <div class="postbit" id="386356" data-post-id="386356">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="lud" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/lud/120/14382_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  lud
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Well then there is a problem because I added <code>nil</code> at the bottom of the function and 52 tests broke, so I’m not sure why it reported it as a positive.</p>
<p>Is there a way to run muex and tell it to run only with that precise mutation?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="386356" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/muex-the-library-for-mutation-testing/74719/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-386356" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="386356"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #12"></div>
  </section>
</div>
    <div class="postbit" id="386357" data-post-id="386357">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="mudasobwa" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mudasobwa/120/5298_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  mudasobwa
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Cure</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="lud" data-post="13" data-topic="74719">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/lud/48/14382_2.png" class="avatar"> lud:</div>
<blockquote>
<p>I added <code>nil</code> at the bottom of the function and 52 tests broke</p>
</blockquote>
</aside>
<p>Other tests, I suppose. The methodology <a href="https://en.wikipedia.org/wiki/Mutation_testing" rel="noopener nofollow ugc">is not perfect</a>, and I know that. OTOH, the ultimate goal is to run it one the <em>newly added code and tests subset</em>.</p>
<aside class="quote no-group" data-username="lud" data-post="13" data-topic="74719">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/lud/48/14382_2.png" class="avatar"> lud:</div>
<blockquote>
<p>Is there a way to run muex and tell it to run only with that precise mutation?</p>
</blockquote>
</aside>
<p>It’s planned. Currently you might do <code>mix muex --files "lib/my_module.ex" --test-paths "test/my_module_test.exs"</code>.</p>
<p>Also, passing <code>--verbose</code> might shed some light too.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="386357" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/muex-the-library-for-mutation-testing/74719/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-386357" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="386357"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #13"></div>
  </section>
</div>
    <div class="postbit" id="386358" data-post-id="386358">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="lud" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/lud/120/14382_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  lud
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Yes I was running with verbose all the time. I need to move my tests to be able to target them better, but in fine JSV might be too test-heavy for mutation testing.</p>
<p>On the optimiztion side, could you describe your strategy? When running claude for the bug report I saw it was debugging symlinks, so I guess you are copying the source code in a temporary dir, adding the mutation, symlink all dependencies build to <code>_build/test/lib/&lt;each-dependency&gt;</code> and call mix test?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="386358" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/muex-the-library-for-mutation-testing/74719/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-386358" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="386358"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #14"></div>
  </section>
</div>
    <div class="postbit" id="386374" data-post-id="386374">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="mudasobwa" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mudasobwa/120/5298_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  mudasobwa
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Cure</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Copying the source code is not the trick, the trick is to avoid recompilations whenever possible.</p>
<p>Unlike ruby or python, where you just change the code and run the mutation, recompiling elixir module might result in recompilation of the whole project. So we group tests by mutations in code, we avoid mutating the whole bunch of file kinds like behaviours etc, <a href="https://hexdocs.pm/muex/mutation_optimization.html" class="inline-onebox" rel="noopener nofollow ugc">Mutation Optimization — Muex v0.8.1</a></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="386374" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/muex-the-library-for-mutation-testing/74719/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-386374" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="386374"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #15"></div>
  </section>
</div>
    <div class="postbit" id="393135" data-post-id="393135">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="mudasobwa" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mudasobwa/120/5298_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  mudasobwa
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Creator of Cure</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><strong><code>v0.9.0</code></strong> is a bug-fixing release. All kudos go to <a href="https://github.com/e-fu" rel="noopener nofollow ugc">e-fu</a>.</p>
<aside class="onebox githubblob" data-onebox-src="https://github.com/Oeditus/muex/blob/v0.9.0/CHANGELOG.md#090---2026-08-26">
  <header class="source">

      <a href="https://github.com/Oeditus/muex/blob/v0.9.0/CHANGELOG.md#090---2026-08-26" target="_blank" rel="noopener nofollow ugc">github.com/Oeditus/muex</a>
  </header>

  <article class="onebox-body">
    <h4><a href="https://github.com/Oeditus/muex/blob/v0.9.0/CHANGELOG.md#090---2026-08-26" target="_blank" rel="noopener nofollow ugc">CHANGELOG.md</a></h4>

<div class="git-blob-info">
  <a href="https://github.com/Oeditus/muex/blob/v0.9.0/CHANGELOG.md#090---2026-08-26" rel="noopener nofollow ugc"><code>v0.9.0</code></a>
</div>


      <pre><code class="lang-md"># Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.9.0] - 2026-08-26

Special thanks to [@e-fu](https://github.com/e-fu) for extensive bug reports, detailed reproductions, and code contributions!

### Fixed
- **Behavior Definition vs Implementation Filtering**: `Muex.FileAnalyzer` no longer skips modules that implement a behavior (`@behaviour SomeBehaviour`). Only modules defining multiple `@callback` annotations are skipped as behavior definitions ([#22](https://github.com/Oeditus/muex/issues/22)). (Credit: [@e-fu](https://github.com/e-fu))
- **Threshold Enforcement on Empty Runs**: `mix muex` now enforces the `--fail-at` threshold when zero mutations are tested rather than silently passing ([#22](https://github.com/Oeditus/muex/issues/22)). (Credit: [@e-fu](https://github.com/e-fu))
- **Sandbox File Linking**: Symlinked all files and subdirectories in the test root (`test/`) into worker sandboxes when narrowing `--test-paths`, ensuring test modules can access compile-time and runtime fixtures, golden files, and schemas ([#25](https://github.com/Oeditus/muex/issues/25)). (Credit: [@e-fu](https://github.com/e-fu))
- **Invalid Verdict Error Details**: Preserved error details in `classify_test_result` when test runs yield `:invalid` verdicts, preventing `error: null` in output reports ([#25](https://github.com/Oeditus/muex/issues/25)). (Credit: [@e-fu](https://github.com/e-fu))
- **Dotted Exception Name Matching**: Updated `compile_error?` regex pattern to support namespaced Elixir exceptions such as `File.Error` and `Jason.DecodeError` ([#25](https://github.com/Oeditus/muex/issues/25)). (Credit: [@e-fu](https://github.com/e-fu))
- **Accurate Node Replacement Matching**: Matched mutations by their original node AST line (`:original_line`) rather than reported display line ([#27](https://github.com/Oeditus/muex/pull/27)). (Credit: [@e-fu](https://github.com/e-fu))
- **App Detection in Sandbox**: Improved OTP application name detection from project definitions rather than guessing from `_build` markers ([#26](https://github.com/Oeditus/muex/pull/26)). (Credit: [@e-fu](https://github.com/e-fu))
- **Unmeasured Runs Verdict Handling**: Fixed unmeasured test runs from being incorrectly counted as killed mutants ([#20](https://github.com/Oeditus/muex/issues/20) / [#21](https://github.com/Oeditus/muex/pull/21)). (Credit: [@e-fu](https://github.com/e-fu))
</code></pre>



  This file has been truncated. <a href="https://github.com/Oeditus/muex/blob/v0.9.0/CHANGELOG.md#090---2026-08-26" target="_blank" rel="noopener nofollow ugc">show original</a>

  </article>

  <div class="onebox-metadata">
    
    
  </div>

  <div style="clear: both"></div>
</aside>
 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="393135" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/muex-the-library-for-mutation-testing/74719/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-393135" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="393135"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-last-post cat-last-post" title="Last post!"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <span class="all-loaded">— All posts loaded —</span>
</div></template></turbo-stream>